title: How to enable a virtualenv in a systemd service unit?
body: <p>I want to &quot;activate&quot; a virtualenv in a systemd service file.</p>
  <p>I would like to avoid having a shell process between the systemd process and the python interpreter.</p>
  <p>My current solution looks like this:</p>
  <pre><code>[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
  </code></pre>
  <p>/etc/sysconfig/fooservice.env</p>
  <pre><code>PATH={{ venv_home }}/bin:/usr/local/bin:/usr/bin:/bin
  PYTHONIOENCODING=utf-8
  PYTHONPATH={{ venv_home }}/...
  VIRTUAL_ENV={{ venv_home }}
  </code></pre>
  <p>But I am having trouble. I get ImportErrors since some entries in <code>sys.path</code> are missing.</p>