【发布时间】:2016-09-24 00:18:20
【问题描述】:
我正在部署一个在虚拟环境中运行的烧瓶应用程序
我的systemd文件如下:
[Unit]
Description=Gunicorn instance to serve my-page
After=network.target
[Service]
User=jb
Group=www-data
WorkingDirectory=/home/jb/webjosue/my-page
Environment="PATH=/home/jb/webjosue/FlaskENV/bin"
ExecStart=/home/jb/webjosue/FlaskENV/bin/gunicorn --workers 3 --bind unix:my-page.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target
在我的 main.py 我有
settings = os.environ['APP_SETTINGS']
我得到这个错误
raise KeyError(key)
Sep 24 00:10:13 ubuntu-512mb-nyc3-01 gunicorn[23439]: KeyError: 'settings'
我猜是因为我的环境指向 virtualenv (FlaskENV),所以我的 .profile 中的其他环境变量没有被识别。
有什么想法吗?
【问题讨论】:
-
不,我正在读取环境变量,然后将其分配给设置,因为我将在其他地方使用此变量。但是永远找不到环境变量 APP_SETTINGS。但是,我可以在本地运行它。
-
我的第一个猜测是 gunicorn 以不同的用户身份运行,因此您的会话环境变量不可用。
-
你可以把环境变量放在systemd服务文件中。
标签: python ubuntu virtualenv gunicorn