systemd不提供环境变量

时间:2016-09-24 00:18:21

标签: python ubuntu virtualenv gunicorn

我正在部署一个在虚拟环境

中运行的烧瓶应用程序

我有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中的其他环境变量无法被识别。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

正如@Joe Doherty所说的here,您可以在GetDisplayText()部分使用Environment指令添加环境变量,更多information。例如:

Service

我正在使用virtualenv,因此[Service] Environment="PATH=/xx/yy/zz/venv/bin" Environment="FLASK_ENV=development" Environment="APP_SETTINGS=config.DevelopmentConfig" 是virtualenv文件夹的路径。