【发布时间】:2021-07-01 16:32:14
【问题描述】:
我正在使用一个 .env 文件,其中包含我的 Django 应用程序的配置。我有一个运行 Daphne 的 systemd 服务(类似于下面的内容)
[Unit]
Description=WebSocket Daphne Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/django/myproject/src
ExecStart=/home/django/myproject/venv/bin/python /home/django/myproject/venv/bin/daphne -e ssl:8001:privateKey=/etc/letsencrypt/live/myproject.com/privkey.pem:certKey=/etc/letsencrypt/live/myproject.com/fullchain.pem myproject.asgi:application
Restart=on-failure
[Install]
WantedBy=multi-user.target
此外,我通过类似的机制使用gunicorn,效果很好。但是,Daphne 没有。
当我通过systemctl start daphne.service 运行它时,它告诉我Django 设置配置不正确所以,我尝试在asgi.py 文件中设置dotenv,如下所示:
dotenv.load_dotenv( os.path.join(os.path.dirname(__file__), '.env' ))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings.dev')
if os.getenv('DJANGO_SETTINGS_MODULE`):
os.environ['DJANGO_SETTINGS_MODULE'] = os.getenv('DJANGO_SETTINGS_MODULE')
但这只是给了我同样的错误。任何想法如何解决这一问题?我检查了这个response,但在daphne.service 中设置环境变量似乎很荒谬/多余。
【问题讨论】: