.env не работает с Джанго с руководителем - PullRequest
0 голосов
/ 17 июня 2019

У меня есть Django 2.2 проект, и все секреты находятся в .env файле.

Я использую библиотеку dotenv для загрузки .envк приложению Django в файле manage.py

import dotenv

def main():

    # Read from .env file
    env_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), '.env')
    dotenv.read_dotenv(env_file)
    ....

Файл среды работает и хорошо загружается при локальном запуске.

На сервере я использую supervisor для запуска приложения со следующей конфигурацией.

[supervisord]
[program:myapp]
command=/var/www/html/app/start_gunicorn.sh
directory=/var/www/html/app/
autostart=true
autorestart=true
stopasgroup=true
stopsignal=QUIT
logfile=/home/ubuntu/log/supervisor/supervisor.log
logfile_maxbytes=5MB
logfile_backups=10
loglevel = info
stderr_logfile=/home/ubuntu/log/supervisor/qcg-backend.err.log
stdout_logfile_maxbytes=5MB
stdout_logfile_backups=10
stdout_logfile=/home/ubuntu/log/supervisor/qcg-backend.out.log
stderr_logfile_maxbytes=5MB
stderr_logfile_backups=10

Но переменные среды не загружены и не работают в Django.

Работает следующая команда из консоли SSH.

python manage.py shell
import os
os.environ.get('DEBUG')
> True

Но при запуске приложения переменные среды недоступны и не применяются в приложении.

1 Ответ

2 голосов
/ 17 июня 2019

manage.py не вызывается при запуске Django в производстве.В dotenv docs говорится, что вы также должны добавить код загрузчика в начало wsgi.py.

...