【发布时间】:2016-09-09 17:11:34
【问题描述】:
我想在 systemd 服务文件中“激活”一个 virtualenv。
我想避免在 systemd 进程和 python 解释器之间有一个 shell 进程。
我目前的解决方案是这样的:
[Unit]
Description=fooservice
After=syslog.target network.target
[Service]
Type=simple
User=fooservice
WorkingDirectory={{ venv_home }}
ExecStart={{ venv_home }}/fooservice --serve-in-foreground
Restart=on-abort
EnvironmentFile=/etc/sysconfig/fooservice.env
[Install]
WantedBy=multi-user.target
/etc/sysconfig/fooservice.env
PATH={{ venv_home }}/bin:/usr/local/bin:/usr/bin:/bin
PYTHONIOENCODING=utf-8
PYTHONPATH={{ venv_home }}/...
VIRTUAL_ENV={{ venv_home }}
但是我遇到了麻烦。我收到 ImportErrors,因为 sys.path 中的某些实体丢失了。
【问题讨论】:
-
能否请您包括您遇到的错误?
-
@PraveenYalagandula 回溯不包含任何有用的信息,因为 ImportError 异常及其上面的所有行仅包含自定义代码,这在此处无关紧要。
标签: python environment-variables virtualenv