这是我的相关目录结构(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 的其他帖子,其中提到系统路径是问题或应用程序名称与项目名称匹配
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 目录缺少该文件;
__init__.py
根据评论,最终的解决方案是更新manage.py文件中的sys.path文件
在 settings.py 中进行的更改不会被看到,因为它无法访问 settings.py 文件,直到对 manage.py 文件进行更改为止。
关于Django 错误 - 没有命名的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12284667/