Как включить virtualenv в сервисном модуле systemd?Python

Программы на Python
Anonymous
Как включить virtualenv в сервисном модуле systemd?

Сообщение Anonymous »

Я хочу «активировать» virtualenv в служебном файле systemd.
Я хотел бы избежать наличия процесса оболочки между процессом systemd и интерпретатором Python.
Мое текущее решение выглядит так:

Код: Выделить всё

[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 }}
Но у меня возникла проблема. Я получаю сообщение об ошибках ImportError, так как некоторые записи в sys.path отсутствуют.

Подробнее здесь: https://stackoverflow.com/questions/372 ... rvice-unit

Вернуться в «Python»