为什么我在Django中收到此错误?

TIM*_*MEX 20 python 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.
Run Code Online (Sandbox Code Playgroud)

Pau*_*lan 38

您需要正确导入您的设置文件.如果您不首先导入django环境变量,则导入将失败,因为您已经注意到了.您需要编写如下代码:

import os

# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "myproject.settings"

#do your stuff


Ale*_*lli 16

我不相信我应该手动创建一个"export DJANGO ..."环境变量......

手动或以其他方式,你应该确保变量在环境中导入一个Django模型文件之前-不知道是什么原因,是你不相信,但是,无论是什么,那是怀疑不攻自破.

  • 大声笑,我认为你的字面意思是"我不相信". (9认同)

小智 14

从命令行运行"python manage.py shell"应该包含正确的设置,并为您提供python提示.


Car*_*yer 6

搞乱环境的另一种方法是将脚本编写为Django自定义管理命令,该命令负责为您设置环境(以及选项解析等其他内容).