这是我相关的目录结构(Windows 7,Python 2.7,virtualenv)

-userProf
-   -   manage.py
    -   -UserProfile
            -   sampleapp_db
            -   urls.py
            -   views.py
            -   wsgi.py
            -   __init__.py
            -
            -libs
            -   -   __init__.py
            -   -allauth
            -       -   app_settings.py
            -       -   models.py
            -       -   tests.py
            -       -   urls.py
            -       -   utils.py
            -       -   __init__.py
            -       -
            -       -account
            -       -   -   admin.py
            -       -   -   context_processors.py
            -       -   -   models.py
            -       -   -   urls.py
            -       -   -   __init__.py
            -       -socialaccount
            -       -   -   admin.py
            -       -   -   context_processors.py
            -       -   -   models.py
            -       -   -   urls.py
            -       -   -   views.py
            -       -   -   __init__.py
            -       -   -
            -       -templates
            -           -account
            -           -   -   base.html
            -           -   -   email.html
            -settings
            -       base_settings.py
            -       dev.py
            -       __init__.py
            -
            -static
                -css


当我尝试运行此django应用时出现以下错误
错误:没有名为帐户的模块

我已经阅读了SO上的其他帖子,这些帖子都提到syspath是问题或appname与项目名称匹配

Django Shell No module named settings

...因此,我在base_settings.py文件中添加了以下语句

import sys
base = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
base_parent = os.path.dirname(base)
sys.path.append(base)
sys.path.append(base_parent)
sys.path.append(os.path.join(base,'libs'))
sys.path.append(os.path.join(base,'libs','allauth','account'))


我通过在PyCharm中放一个中断并评估sys.path来验证sys.path是正确的

我应该把它放在manage.py中吗?

其他一些SO帖子提到无法导入模块,但我可以启动python控制台并导入UserProfile.libs.allauth.account,而不会引发任何异常!

我的base_setings.py具有以下相关部分

INSTALLED_APPS = (
    'UserProfile.libs.allauth.account',
)

最佳答案

看起来libs / allauth dir缺少文件;

__init__.py


根据评论,最终的解决方案是更新manage.py文件中的sys.path文件。

由于无法访问settings.py文件,因此无法看到settings.py中的更改,直到对manage.py文件进行了更改。

07-26 04:43