Django raise ImportError(无法导入设置,因为环境变量%s未定义
关于这个错误,这里有几个问题,但没有答案对我有帮助,奇怪的是,这个错误突然被提出,而之前一切都很好 我所做的是重新启动服务器,突然发现: 为什么这个错误会突然出现,而我没有改变任何东西,我如何才能修复它Django raise ImportError(无法导入设置,因为环境变量%s未定义,django,manage.py,Django,Manage.py,关于这个错误,这里有几个问题,但没有答案对我有帮助,奇怪的是,这个错误突然被提出,而之前一切都很好 我所做的是重新启动服务器,突然发现: 为什么这个错误会突然出现,而我没有改变任何东西,我如何才能修复它 Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.7/bin/django-admin.py", line 5, in <module> man
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/bin/django-admin.py", line 5, in <module>
management.execute_from_command_line()
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/core/management/__init__.py", line 261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/core/management/__init__.py", line 69, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/core/management/commands/runserver.py", line 8, in <module>
from django.core.servers.basehttp import AdminMediaHandler, run, WSGIServerException, get_internal_wsgi_application
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/core/servers/basehttp.py", line 26, in <module>
from django.views import static
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/views/static.py", line 95, in <module>
template_translatable = ugettext_noop(u"Index of %(directory)s")
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/utils/translation/__init__.py", line 75, in gettext_noop
return _trans.gettext_noop(message)
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/utils/translation/__init__.py", line 48, in __getattr__
if settings.USE_I18N:
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/utils/functional.py", line 184, in inner
self._setup()
File "/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/django/conf/__init__.py", line 40, in _setup
raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.
回溯(最近一次呼叫最后一次):
文件“/Library/Frameworks/Python.framework/Versions/2.7/bin/django admin.py”,第5行,在
管理。从命令行()执行命令
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/core/management/_init____;.py”,第443行,从命令行执行
utility.execute()
文件“/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/Django/core/management/_-init___;.py”,执行中第382行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/core/management/_init____;.py”,第261行,在fetch_命令中
klass=加载命令类(应用程序名称,子命令)
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/core/management/_init__.py”,第69行,在load_命令类中
模块=导入模块(“%s.management.commands.%s%”(应用程序名称,名称))
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/utils/importlib.py”,第35行,在import_模块中
__导入(名称)
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/core/management/commands/runserver.py”,第8行,在
从django.core.servers.basehttp导入AdminMediaHandler,运行WSGIServerException,获取内部wsgi应用程序
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/core/servers/basehttp.py”,第26行,在
从django.views导入静态
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/views/static.py”,第95行,在
template_translateable=ugettext_noop(u“索引%(目录)s”)
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/utils/translation/_init__.py”,第75行,在gettext_noop中
return\u trans.gettext\u noop(消息)
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/utils/translation/_init___;.py”,第48行,在__
如果设置为。请使用_I18N:
文件“/Library/Python/2.7/site packages/Django-1.4.5-py2.7.egg/Django/utils/functional.py”,内页第184行
self.\u设置()
文件“/Library/Python/2.7/site-packages/Django-1.4.5-py2.7.egg/Django/conf/_-init___;.py”,第40行,在安装程序中
raise ImportError(“无法导入设置,因为环境变量%s未定义。”%environment\u variable)
ImportError:无法导入设置,因为环境变量DJANGO_Settings_MODULE未定义。
每当打开新shell时,我都会运行此脚本:
export PYTHONPATH=$PYTHONPATH:/Users/cole/Projects/Sites/my_project.com/my_project
export DJANGO_SETTINGS_MODULE=my_project.settings
更新:我有点草率地编辑了脚本。需要做的是:
export PYTHONPATH=$PYTHONPATH:/Path/To/Project/Root/Directory
export DJANGO_SETTINGS_MODULE=my_project.settings
转到可使用manage.py的项目文件夹并运行: python manage.py shell
运行django语句,该语句可以避免错误检查此项:
python manage.py shell
然后import sys
然后sys.path
。项目目录在该路径上吗?退出。输入常规的python shellpython
。然后import sys
,sys.path
。项目目录在该路径上吗?您正在使用什么操作系统?也许您有DJANGO_SETTINGS_MODULE
设置为重新启动时清除的环境变量。无论如何,您需要设置此变量。它通常在manage.py
中为您处理,但有些人不得不求助于手动设置。@Cole:谢谢。项目目录只显示在python manage.py shell中,而不是在python shell中。