为什么在Django中会出现这个错误?
我有一个脚本,它想从一个应用程序中导入一个叫做models.py的文件,但就是导入不成功!我觉得我不应该手动创建一个叫“export DJANGO...”的环境变量……我可能是哪里做错了。
Traceback (most recent call last):
File "parse.py", line 8, in ?
from butterfly.flower.models import Channel, Item
File "/home/user/shri/butterfly/flower/models.py", line 1, in ?
from django.db import models
File "/usr/lib/python2.4/site-packages/django/db/__init__.py", line 10, in ?
if not settings.DATABASE_ENGINE:
File "/usr/lib/python2.4/site-packages/django/utils/functional.py", line 269, in __getattr__
self._setup()
File "/usr/lib/python2.4/site-packages/django/conf/__init__.py", line 38, 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.
6 个回答
14
在命令行中输入“python manage.py shell”这条命令,它会加载正确的设置,然后给你一个Python的提示符,让你可以开始输入Python代码。
38
你需要正确导入你的设置文件。如果你不先导入django的环境变量,你的导入就会失败,正如你所发现的那样。你需要写一些类似下面的代码:
import os # Set the DJANGO_SETTINGS_MODULE environment variable. os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings" #do your stuff
17
我不认为我应该手动创建一个“export DJANGO...”的环境变量...
不管是手动还是其他方式,你确实需要确保这个变量在你导入Django模型文件之前已经在环境中。虽然我不太清楚你为什么会有这样的怀疑,但无论是什么原因,这种怀疑都是没有根据的。