Přidejte tuto vlastnost do [Service]
sekce, abyste se ujistili, že systemd
spustit jako určený uživatel.
User=pi
Viz řešení AndyD.
Nejpravděpodobnějším vysvětlením je, že máte nastavené nějaké proměnné prostředí (např. rozšíření vašeho PYTHONPATH?), které nejsou nastaveny, když skript spouští systemd.
Můžete zkusit použít parametr Environment (viz [0]), takže nastavte PYTHONPATH (a cokoli jiného, co by to mohlo ovlivnit) na cokoliv, co je ve vaší konzolové relaci.
[0] http://0pointer.de/public/systemd-man/systemd.exec.html#Environment=
systemd
běží jako root. Moduly nainstalované pomocí pip
jsou instalovány pro uživatele, nikoli pro systém, a tak instalace modulů bez oprávnění root způsobila, že moduly jsou pro roota nedostupné.
Abych to vyřešil, spustil jsem sudo -H pip install zmq
a sudo -H pip3 install zmq
nainstalovat balíčky pro Python 2.7 a Python 3+ pro root. To umožnilo systemd
pro přístup k modulům, jakmile se pokusí spustit skript Python.