Django + gunicorn + systemd问题

时间:2016-04-04 19:56:01

标签: python django gunicorn systemd

我正在尝试使用systemd为我的django项目设置gunicorn,但它无法加载我项目的另一个库。

File "/home/ubuntu/venv/lib/python3.4/importlib/__init__.py", line 109, in import_module
gunicorn[6043]: return _bootstrap._gcd_import(name[level:], package, level)
gunicorn[6043]: ImportError: No module named 'templates'

模板是项目的另一部分,位于单独的目录中。如果我尝试在/home/ubuntu/templates/中运行没有$PYTHONPATH的网站,我会收到同样的错误,我已经在我的systemd单元文件中添加了pythonpath但它没有做任何事情。

我可以使用此命令成功运行gunicorn:

/home/ubuntu/venv/bin/gunicorn --pid /tmp/pid-gunicorn site_gfa.wsgi:application -b 0.0.0.0:8083

但我在systemd

中失败了

系统单元文件

[Unit]
Description="Site"
After=network.target

[Service]
PIDFile=/tmp/pid-gunicorn
User=ubuntu
Group=users
Environment=PYTHONPATH='/home/ubuntu/templates/'
WorkingDirectory=/home/ubuntu/gfa-apps/
ExecStart=/home/ubuntu/venv/bin/gunicorn --pid /tmp/pid-gunicorn site_gfa.wsgi:application -b 0.0.0.0:8083
PrivateTmp=true
Type=forking

[Install]
WantedBy=multi-user.target

我用Python 3.4和gunicorn 19.4.5运行CentOS7 提前谢谢!

1 个答案:

答案 0 :(得分:2)

解决了这个问题,systemd单元文件中的Environment var不应该有引号。

[Unit]
Description="Site"
After=network.target

[Service]
PIDFile=/tmp/pid-gunicorn
User=ubuntu
Group=users
Environment=PYTHONPATH=/home/ubuntu/templates/
WorkingDirectory=/home/ubuntu/gfa-apps/
ExecStart=/home/ubuntu/venv/bin/gunicorn --pid /tmp/pid-gunicorn site_gfa.wsgi:application -b 0.0.0.0:8083
PrivateTmp=true
Type=forking

[Install]
WantedBy=multi-user.target