Правильная установка DJANGO_SETTINGS_MODULE в Windows

Есть мои сообщения по этому запросу, но большинство из них предназначены для Linux. Ни один из них не предназначен только для окон.

в моем приложении я настраиваю базу данных (sqlite3, по умолчанию в Django). после редактирования файла setting.py моего приложения (mysite)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'D:/Django_Code/sqlite.db',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

обнаружив, что я должен установить среду DJANGO_SETTINGS_MODULE, чтобы Django мог знать о настройке базы данных. Итак, я настроил это как

DJANGO_SETTINGS_MODULE = "D:\Django_Code\mysite\mysite\settings.py"

Для перекрестной проверки настройки базы данных, когда я выдаю

>>> from django.db import connection
>>> cursor = connection.cursor()

он говорит, что переменная среды DJANGO_SETTINGS_MODULE не определена.

Нужна помощь, чтобы правильно установить DJANGO_SETTINGS_MODULE.


person navyad    schedule 12.10.2012    source источник
comment
Вам действительно не нужно устанавливать DJANGO_SETTINGS_MODULE. Как говорит Каспар, просто сделайте python manage.py shell, чтобы настроить оболочку для Django.   -  person Daniel Roseman    schedule 12.10.2012


Ответы (1)


Самый простой способ установить DJANGO_SETTINGS_MODULE в Windows - использовать команду set из командной строки. Вы также должны иметь возможность установить его через системные свойства, но вам нужно будет закрыть и снова открыть командную строку, чтобы изменения вступили в силу.

Вы также можете запросить текущее значение DJANGO_SETTINGS_MODULE, используя команду set:

C:\temp\testproject> set DJANGO_SETTINGS_MODULE

Кроме того, вам необходимо установить для него имя модуля python, не имя файла (установка его на имя файла выдаст вам ошибку, аналогичную «Не удалось импортировать настройки 'C: \ temp \ testproject \ settings.py' (Это на sys.path?): Импорт по имени файла не поддерживается. ")

Например,

C:\temp\testproject> set DJANGO_SETTINGS_MODULE=testproject.settings

Затем вы можете запустить python, и модуль можно будет импортировать.

>>> import sys
>>> sys.path += ['C:\\temp']
>>> from django.db import connection
>>> connection.cursor()
<django.db.backends.util.CursorDebugWrapper object at 0x02C7F0B0>

Обратите внимание, что мы также явно добавили каталог, содержащий проект django (в данном случае testproject), в sys.path, который фактически представляет собой список каталогов, в которых Python ищет модули. Это необходимо, потому что Python импортирует файл настроек как модуль python, а не как файл (как упоминалось ранее).

Если вы хотите, чтобы интерактивная оболочка играла с объектами Django, вы можете использовать _ 10_ команда управления. В каталоге вашего проекта Django выполните следующую команду:

manage.py shell

Поскольку вы работаете в Windows, вам, возможно, придется сделать

python manage.py shell

вместо этого, поскольку у меня лично были проблемы с скриптами Python, которые иначе не получали аргументы командной строки.

C:\temp\testproject> python manage.py shell

In [1]: from django.db import connection

In [2]: connection.cursor()
Out[2]: <django.db.backends.util.CursorDebugWrapper at 0x33a0bd0>

(Обратите внимание, что у меня установлен IPython, и Django умно и использует его; если у вас не установлен IPython, ваш оболочка будет выглядеть немного иначе.)

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

person Caspar    schedule 12.10.2012
comment
Можете ли вы постоянно импортировать его в переменную окружения в Windows? - person ExoticBirdsMerchant; 18.04.2014
comment
@ExoticBirdsMerchant. Конечно, вы должны установить его так же, как вы устанавливаете другие переменные среды в Windows (что статья предназначена для XP, но на 7 все то же). Между прочим, этот интерфейс ужасен, и если вам нужно отредактировать несколько переменных среды в Windows, вы можете попробовать Rapid EE (без принадлежности). - person Caspar; 08.05.2014
comment
Спасибо, действительно, графический интерфейс в переменных окружения ужасен и непрактичен в Windows, а Rapid EE просто великолепен !!! - person ExoticBirdsMerchant; 09.05.2014