Python/Django: Обновленные Значения .env Не Отображаются После Перезапуска runserver

Я работаю с проектом на Django и использую файл .env для управления переменными среды. Однако после обновления значений в файле .env и перезапуска сервера (python manage.py runserver) новые значения не отображаются в приложении. В частности, значения SLACK_CLIENT_ID и SLACK_APP_NAME не обновляются, хотя я могу подтвердить, что env-файл загружен правильно.

Вот что я сделал:

  1. Я обновил файл .env с правильными значениями.
  2. Я перезапустил сервер разработки Django, используя python manage.py runserver.
  3. Я подтвердил, что файл .env загружается (напечатал инструкции отладки для SLACK_CLIENT_ID и SLACK_APP_NAME).
  4. Несмотря на эти обновления, приложение по-прежнему отображает старые значения переменных среды (например, your-slack-client-id).

Я попробовал следующее:

  1. Убедитесь, что файл .env находится в правильном расположении и отформатирован должным образом.
  2. Использую load_dotenv() для загрузки файла .env в моем settings.py.
  3. Несколько раз перезапускаю сервер.
  4. Проверка виртуальной среды.
from dotenv import load_dotenv
import os

load_dotenv()

SLACK_CLIENT_ID = os.getenv('SLACK_CLIENT_ID', 'your-slack-client-id')
SLACK_APP_NAME = os.getenv('SLACK_APP_NAME', 'Slack Integration')

print("SLACK_CLIENT_ID from .env:", SLACK_CLIENT_ID) 

Несмотря на то, что я удалил резервное значение 'your-slack-client-id' и обновил env-файл, инструкция print по-прежнему выводит старое значение (your-slack-client-id). Новое значение не выводится.

Есть какие-нибудь предположения о том, что может пойти не так?

Несколько советов по отладке:

  • Проверьте наличие переменных среды оболочки (.bashrc, .bash_profile, .zshrc, .zprofile, и т.д.), чтобы узнать, есть ли значения по умолчанию для этих переменных окружения, или вы могли бы попробовать load_dotenv(override=True), которые должны переопределять использование значений в вашем .env файл.

  • Убедитесь, что load_dovenv загружается правильно .env файл, это может быть хорошей ссылкой для чтения. Для чего используется python-dotenv?

  • Проверьте, нет ли опечаток в файле .env.

  • Если вы используете virtualenv, попробуйте перезапустить среду IDE.

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

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

Вернуться на верх