为什么在Django中会出现这个错误?

20 投票
6 回答
19703 浏览
提问于 2025-04-15 15:29

我有一个脚本,它想从一个应用程序中导入一个叫做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模型文件之前已经在环境中。虽然我不太清楚你为什么会有这样的怀疑,但无论是什么原因,这种怀疑都是没有根据的。

撰写回答