Почему я получаю эту ошибку в Django? - PullRequest
20 голосов
/ 29 октября 2009

У меня есть скрипт, который импортирует 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 ]

38 голосов
/ 29 октября 2009

Вам необходимо правильно импортировать файл настроек. Если вы сначала не импортируете переменные окружения django, ваш импорт завершится неудачно, как вы заметили. Вам нужно кодировать что-то вроде:

import os

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

#do your stuff

16 голосов
/ 29 октября 2009

Я не верю, что должен вручную создать «экспорт DJANGO ...» переменная окружения ...

Вручную или иным образом, вы должны убедиться, что переменная находится в среде, прежде чем импортировать файл моделей Django - не знаете, каковы причины вашего неверия, но, какими бы они ни были, это неверие необоснованно.

14 голосов
/ 28 марта 2011

из командной строки запускает "python manage.py shell" должен включать в себя правильные настройки для вас и дать вам приглашение Python.

6 голосов
/ 29 октября 2009

Одна из альтернатив возиться с окружающей средой - просто написать свой сценарий в виде пользовательской команды управления Django , которая позаботится о настройке среды для вас (наряду с другими вещами, такими как анализ параметров и т. Д.). ).

0 голосов
/ 12 марта 2014

У меня была похожая ошибка, и я понял, что забыл создать файл " init .py" в папке приложения:

myapp:
    manage.py
    myapp:
        __init__.py
        settings.py
        ....
0 голосов
/ 25 октября 2013

Из командной строки, пожалуйста, выполните эту команду. Это может помочь вам:

export DJANGO_SETTINGS_MODULE=projectname.settings
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...