DJANGO_SETTINGS_MODULE 未命名模块
Posted
技术标签:
【中文标题】DJANGO_SETTINGS_MODULE 未命名模块【英文标题】:DJANGO_SETTINGS_MODULE No Module Named 【发布时间】:2018-01-26 00:04:42 【问题描述】:我正在尝试为我的数据库创建填充脚本,但我收到了 No module named 错误。
Project Structure:
staticone/
manage.py
mysite/
populate_rango
settings
urls
__init__
wsgi
rango/
追溯:
Traceback (most recent call last):
File "populate_rango.py", line 8, in <module>
django.setup()
File "/home/ubuntu/virtenv/webstatic/lib/python3.5/site-
packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/ubuntu/virtenv/webstatic/lib/python3.5/site-
packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/home/ubuntu/virtenv/webstatic/lib/python3.5/site-
packages/django/apps/config.py", line 116, in create
mod = import_module(mod_path)
File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'mysite'
我的路径:
['/home/ubuntu/virtenv/webstatic/staticone/mysite',
'/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-
x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload',
'/home/ubuntu/virtenv/webstatic/lib/python3.5/site-packages']
我的 settings.py 文件在 mysite 下
mysite 文件夹下的populate_rango.py:
import sys
print (sys.path)
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE','settings')
import django
django.setup()
from mysite.rango.models import Category,Page
如果我尝试
os.environ.setdefault('DJANGO_SETTINGS_MODULE','mysite.settings')
我得到同样的错误:
没有名为 mysite 的模块。
mysite 在路径上,所以我很困惑为什么它没有找到设置文件。
【问题讨论】:
mysite
在 INSTALLED_APPS
(settings.py
) 中吗?
是的,我在settings.py下的INSTALLED_APPS中有mysite
请显示您的项目布局,尤其是在populate_rango.py
与您的manage.py
和settings.py
文件进行比较时。
【参考方案1】:
我需要将 mysite 的父目录放在路径上。我只有/home/ubuntu/virtenv/webstatic/staticone/mysite
。现在当我包括在内时它可以工作
/home/ubuntu/virtenv/webstatic/staticone/
.
import sys
sys.path.append("/home/ubuntu/virtenv/webstatic/staticone/")
print (sys.path)
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE','mysite.settings')
import django
django.setup()
from mysite.rango.models import Category,Page
现在可以了。
【讨论】:
以上是关于DJANGO_SETTINGS_MODULE 未命名模块的主要内容,如果未能解决你的问题,请参考以下文章
新设备上的 AWS Appsync 缓存未命中和 403 错误