Хобрук: Ваш путь к мастерству в программировании

Установите DJANGO_SETTINGS_MODULE в качестве переменной среды в Windows на постоянной основе

Как я могу навсегда установить переменную окружения DJANGO_SETTINGS_MODULE на WINDOWS на постоянной основе и покончить с этим?

я имею в виду

  1. Win Button + Pause/Break Button
  2. Это приводит к Control Panel\System and Security\System
  3. Нажмите Advanced System Settings
  4. Нажмите Environment Variables
  5. Есть две коробки, первая называется User variables, а вторая System variables.
  6. На System variables нажмите New Button
  7. Для имени переменной введите DJANGO_IMPORT_SETTINGS

XXX--> КАК УСТАНОВИТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ, ЧТОБЫ УСТАНОВИТЬ ЕГО РАЗ И НАВСЕГДА?


На сайте Django в этой проблеме говорится:

DJANGO_SETTINGS_MODULE

Когда вы используете Django, вы должны сообщить ему, какие настройки вы используете. Для этого используйте переменную среды DJANGO_SETTINGS_MODULE.

Значение DJANGO_SETTINGS_MODULE должно быть в синтаксисе пути Python, например. мой сайт.настройки. Обратите внимание, что модуль настроек должен находиться в пути поиска импорта Python.


Что это значит ... должно быть в синтаксисе пути Python, например. mysite.settings... ?

  • У меня есть определенный каталог, в котором находится мой Python: C:\Python27
  • У меня есть определенный каталог, в котором находится мой Django: C:\Python27\Lib\site-packages\django

Что означает этот mysite. Какой каталог имеется в виду C:\Something......

Можно ли поставить эту переменную раз и навсегда или придётся её постоянно менять для каждого проекта (надеюсь, что нет!)

И что означает эта подозрительная строка Обратите внимание, что модуль настроек должен находиться на пути поиска импорта Python.

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

ИЗМЕНИТЬ

Для работы Django достаточно указать действительный файл настроек, и по умолчанию он ищет переменную среды с именем DJANGO_SETTINGS_MODULE, чтобы указать, где найти настройки. Значением этой переменной должен быть путь импорта файла настроек Python, например cms.settings.

--> Что это за король каталогов: cms.settings? В Windows каждый каталог начинается с жесткого диска как C:\Something...... Как вы можете запустить такой каталог в Windows?

EDIT_2

Выдержка из книги

ПРОБЛЕМА Переменная среды DJANGO_SETTINGS_MODULE не определена.

РЕШЕНИЕ Выполните команду python manage.py shell, а не python.

МОЙ ВОПРОС --> В КАКОМ СПРАВОЧНИКЕ?///МОЖНО УСТАНОВИТЬ ЭТО ОДИН РАЗ ИЛИ ЭТО РАЗНОЕ ДЛЯ КАЖДОГО ПРОЕКТА?

МОЙ ПРОЕКТ СТРУКТУРИРОВАН ТАК

C:\Python27\pysec-master(file)
|__local_settings.py
|__manage.py
|__settings.py
|__C:\Python27\pysec(file)
   |__ __init__.py
   |__example.py
   |__models.py
   |__xbrl.py
   |__xbrl_fundamentals.py

Я пытаюсь запустить models.py, и у меня есть settings.py в C:\Python27\pysec-master. Вы можете найти точную копию здесь.

MAYBE_IMPORTANT_EDIT

У меня есть файл с именем manage.py в моем проекте, который имеет это содержимое

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

Это должно что-то делать при установке переменной? Мне нужно установить здесь здесь внутри цикла?

РЕДАКТИРОВАТЬ

Для команды в IDLE from django.db import settings мне нужно установить каталог для PYTHON_MODULE_SETTINGS как C:\Python27\Lib\site-packages\django\db?


  • Можете ли вы иметь одну DJANGO_SETTINGS_MODULE постоянно или вы должны менять ее для каждого проекта? Кто-нибудь... я застрял на этом на несколько дней... 18.04.2014

Ответы:


1

Ладно, не расстраивайся так. Давайте рассмотрим это шаг за шагом:

  • Синтаксис пути Python:

    В Python, когда вы разделяете свою кодовую базу на модули, вы уточняете имя импорта именем модуля. Допустим, ваш проект структурирован следующим образом:

    my_project
    |__utils
    |  |____init__.py
    |  |__file_utils.py
    |__my_module
       |____init__.py
       |__main.py
    

    В вашем main.py, если вы хотите получить доступ к методам, которые вы определили в file_utils.py, вы добавляете оператор импорта в свой main.py следующим образом:

    import utils.file_utils.read_file
    

    предполагая, что read_file — это метод, который вы хотите импортировать в main.py. Этот способ импорта модулей, в котором у вас есть ., разделяющий каждый модуль, называется синтаксисом пути python.

  • ПУТЬ ПИТОНА:

    В приведенном выше примере оператор импорта будет работать, только если интерпретатор Python знает, где искать первый модуль, а именно utils. Только когда он находит utils, он может найти file_utils и read_file. Вы указываете список всех путей, которые интерпретатор должен изучить, в переменной окружения PYTHONPATH. Таким образом, чтобы иметь в своем коде оператор импорта, подобный приведенному выше, вы должны убедиться, что полный путь к вашему проекту my_project находится в PYTHONPATH. Предполагая, что my_project находится в C:\AMAZEBALLS_CODE\my_project, у вас должно быть C:\AMAZEBALLS_CODE в PYTHONPATH.

  • DJANGO_SETTINGS_MODULE:

    Теперь давайте предположим, что ваш my_project на самом деле является приложением Django. Приложению Django нужен файл настроек, в котором вы указываете весь набор вещей. Чтобы указать Django, какой файл настроек нужно просмотреть, укажите его в DJANGO_SETTINGS_MODULE. Предполагая, что это ваша структура проекта:

    my_project
    |__utils/
    |  |____init__.py
    |  |__file_utils.py
    |__my_module/
    |  |____init__.py
    |  |__main.py
    |__site_settings/
       |__dev_settings.py
       |__production_settings.py
    

    myroject.site_settings — это модуль, который Django должен искать в файле настроек. И myroject.site_settings.dev_settings — это значение, которое вам нужно установить для DJANGO_SETTINGS_MODULE в приведенном выше случае. Когда в документации указано cms.settings или mysite.settings, это означает, что cms или mysite — это имя вашего проекта, а settings.py — это имя вашего файла настроек.

Теперь давайте посмотрим на ваш вопрос:

Можете ли вы навсегда установить его в переменных среды Windows? Конечно.
Правильно ли это? Нет.

Потому что, если вы хотите завтра создать другое приложение в другом месте, вам придется отредактировать его в разделе переменных среды Windows. Кроме того, принято использовать другой файл настроек для среды разработки и другой для рабочей среды. Таким образом, установка его в одном месте с одним значением делает его негибким. Но если вы знаете обо всем вышеперечисленном и уверены, что собираетесь использовать только один файл настроек, установите DJANGO_SETTINGS_MODULE в myproject.site_settings.dev_settings в разделе переменных env.

Надеюсь это поможет!

ИЗМЕНИТЬ:

Похоже, вы помещаете свой проект pysec-master в C:\Python27. Не помещайте свои проекты в установку Python. Создайте файл settings.py в своем проекте и установите для DJANGO_SETTINGS_MODULE значение pysec-master.settings.

18.04.2014
  • Извините за медленное время ответа, я ищу аналитический ответ. 18.04.2014
  • Итак, если pysec-master - это имя моего проекта, я должен ввести его как pysec-master.settings в IDLE или cmd? Если он находится на cmd, я должен перейти в этот каталог, а затем ввести его в cmd? Я попробую это, а затем попробую IDLE на Python. 18.04.2014
  • @ExoticBirdsMerchant отредактировал мой ответ 18.04.2014
  • Да, у меня есть проект в моем файле C:\Python27. Как новичок, я думал, что это самое разумное, что можно сделать. Кажется, это не так. Смена местоположения сейчас... 18.04.2014
  • Уважаемый shaktimaan, в EDIT я изменил расположение файла pysec-master и соответствующие переменные среды. Однако проект, который я скачал с github, имеет settings.py, поэтому я думаю, что мне не придется его создавать. 18.04.2014
  • Вы заявили: Установите для DJANGO_SETTINGS_MODULE значение pysec-master.settings, а также два горячих вопроса... 1) На cmd или IDLE и 2) Поместить ли я каталог для pysec_master.settings как C:\pysec-master.settings? 18.04.2014
  • Должен ли я установить его внутри файла settings.py? 18.04.2014

  • 2

    Вы сказали:

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

    Если вы не хотите каждый раз проходить утомительную процедуру, не обязательно делать ее постоянной, достаточно сделать процедуру автоматической.

    Создайте летучую мышь и поместите set DJANGO_SETTINGS_MODULE='xxx.settings' внутрь.

    Если вы используете virtualenv, вы можете установить переменную среды в bin/activate.bat.

    18.04.2014
  • Извините, но я не знаю, что такое файл bat (хотя я это узнаю). Вы сказали: 'xxx.settings' и мой вопрос: не нужно ли размещать каталог, ведущий к моему проекту, который pysec-master, в среде Windows? правильный? 18.04.2014
  • Должен ли я установить его внутри файла settings.py? 18.04.2014
  • Мне нужно поставить каталог Windows C:\pysec-master, а затем настройки? 18.04.2014
  • Новые материалы

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

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

    Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
    Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

    Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
    Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

    стройный-i18следующий
    Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..