Django错误 - 没有命名的模块

时间:2012-09-05 15:19:17

标签: django module

这是我的相关目录结构(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',
)

1 个答案:

答案 0 :(得分:6)

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

__init__.py

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

在manage.py文件中进行更改之前,没有看到settings.py中的更改,因为它无法访问settings.py文件。