mange.py中的Django settings.py导入错误配置错误
Posted
技术标签:
【中文标题】mange.py中的Django settings.py导入错误配置错误【英文标题】:Django settings.py import error in mange.py Configuration error 【发布时间】:2018-06-14 04:17:21 【问题描述】:提前感谢我的查询。
我创建了一个 django 项目,它在 src 文件夹中有 manage.py 文件,当从 SRC 文件夹运行终端时它工作正常。
对于 Heroku 部署 manage.py 应该放在根目录中,所以我用“os.environ.setdefault("DJANGO_SETTINGS_MODULE", "src.tweetme.settings")" 更新了 manage.py 文件
将 "os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tweetme.settings")" 更改为 "os.environ.setdefault("DJANGO_SETTINGS_MODULE", "src.tweetme.settings ")" 在本地运行时遇到导入问题。需要解决方案如何在两个文件夹深处导入setting.py。
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "src.tweetme.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
我面临以下错误: 附加了 Error_Message.png
Hiras-Mac-mini-2:tweethere apple$ python manage.py runserver 回溯(最近一次通话最后): 文件“manage.py”,第 23 行,在 execute_from_command_line(sys.argv) 文件“/Library/Python/2.7/site-packages/django/core/management/init.py”,第 363 行,在 execute_from_command_line 实用程序.execute() 文件“/Library/Python/2.7/site-packages/django/core/management/init.py”,第 307 行,在执行中 settings.INSTALLED_APPS getattr 中的文件“/Library/Python/2.7/site-packages/django/conf/init.py”,第 56 行 self._setup(名称) _setup 中的文件“/Library/Python/2.7/site-packages/django/conf/init.py”,第 41 行 self._wrapped = 设置(settings_module) init 中的文件“/Library/Python/2.7/site-packages/django/conf/init.py”,第 110 行 mod = importlib.import_module(self.SETTINGS_MODULE) import_module 中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/init.py”,第 37 行 进口(名称) ImportError:没有名为 src.tweetme.settings 的模块
***这是我的包结构:***附加的 Project_Structure.png
-Project
-bin
-include
-lib
-src
-subProject1
-subProject2
-subProject3
-mainProject
-Settings
-__init__.py
-base.py
-local.py
-production.py
-manage.py
-db.sqlite3
-static-serve
-.env
-.python
-manage.py
-ProcFile
-requirements.txt
Project_Structure.pngError_Message.png
【问题讨论】:
您的问题令人困惑,因为您使用了诸如tweethere
之类的真实目录名称和mainProject
之类的虚构名称的混合。如果你到处都用真名会更清楚。
【参考方案1】:
如果manage.py
不在src
目录下,则需要将src
添加到Python路径中。
import sys
sys.path.append('src')
然后您应该保持 DJANGO_SETTINGS_MODULE
不变,而不要使用 src
。
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tweetme.settings")
【讨论】:
以上是关于mange.py中的Django settings.py导入错误配置错误的主要内容,如果未能解决你的问题,请参考以下文章