Python/Django: Обновленные Значения .env Не Отображаются После Перезапуска runserver
Я работаю с проектом на Django и использую файл .env для управления переменными среды. Однако после обновления значений в файле .env и перезапуска сервера (python manage.py runserver) новые значения не отображаются в приложении. В частности, значения SLACK_CLIENT_ID и SLACK_APP_NAME не обновляются, хотя я могу подтвердить, что env-файл загружен правильно.
Вот что я сделал:
- Я обновил файл .env с правильными значениями.
- Я перезапустил сервер разработки Django, используя python manage.py runserver.
- Я подтвердил, что файл .env загружается (напечатал инструкции отладки для SLACK_CLIENT_ID и SLACK_APP_NAME).
- Несмотря на эти обновления, приложение по-прежнему отображает старые значения переменных среды (например, your-slack-client-id).
Я попробовал следующее:
- Убедитесь, что файл .env находится в правильном расположении и отформатирован должным образом.
- Использую load_dotenv() для загрузки файла .env в моем settings.py.
- Несколько раз перезапускаю сервер.
- Проверка виртуальной среды.
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()
возвращает значение вместо перехода в резервный режим).
Надеюсь, это может помочь!