Запустите файл .env в django app с python -dotenv при запуске оболочки - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь использовать python -dotenv для запуска файла .env при запуске ./manage.py shell.

Но .env не запускается при запуске ракушка. Ничего отличного от обычного не происходит.

Что я сделал:

  1. установлен python-dotenv с pip install python-dotenv в моей виртуальной среде
  2. добавил .env файл в том же каталоге, что и мой проект settings.py

Также добавлен ниже в settings.py:

from dotenv import load_dotenv
load_dotenv()

Для контекста, мой .env выглядит так:

export PYTHONSTARTUP=`pwd`/.pythonrc.py
echo "environment variables set"

И я экспортирую .pythonrc.py, поэтому я могу выполнить некоторые операции импорта при загрузке оболочки.

Я довольно новичок в django. Я что-то упускаю из виду?

1 Ответ

1 голос
/ 25 февраля 2020

Проблема в том, что вы рассматриваете файл env как оболочку.

python -dotenv readme утверждает, что вы можете использовать export в вашем файле .env, который игнорируется пакетом , Это так, что env vars может быть альтернативно установлен путем вызова source .env из оболочки.

Однако вы не можете запускать сценарии оболочки таким образом. Когда я попытался загрузить ваш пример, я получил это сообщение:

Python-dotenv could not parse statement starting at line 2
True

После удаления строки echo я получил просто True в качестве ответа и было установлено PYTHONSTARTUP.

Однако есть и другая проблема, поскольку вы зависите от сценариев оболочки в значении PYTHONSTARTUP. Он установлен на

'PYTHONSTARTUP': '`pwd`/.pythonrc.py'

Не то, что вы ожидаете. Это должно работать:

export PYTHONSTARTUP2=${PWD}/.pythonrc.py
...