Agregue esta propiedad a [Service]
sección para asegurarse de que systemd
ejecutar como el usuario especificado.
User=pi
Consulte la solución de AndyD.
La explicación más probable es que tiene algunas variables de entorno configuradas (por ejemplo, ¿una extensión de su PYTHONPATH?) que no están configuradas cuando systemd ejecuta el script.
Podría intentar usar el parámetro Entorno (ver [0]), así que configure PYTHONPATH (y cualquier otra cosa que pueda influir en esto) a lo que sea en su sesión de consola.
[0] http://0pointer.de/public/systemd-man/systemd.exec.html#Environment=
systemd
se ejecuta como root. Los módulos instalados a través de pip
se instalan para un usuario en lugar de para el sistema y, por lo tanto, la instalación de los módulos sin privilegios de root hizo que los módulos fueran inaccesibles para root.
Para resolver esto ejecuté sudo -H pip install zmq
y sudo -H pip3 install zmq
para instalar los paquetes para Python 2.7 y Python 3+ para root. Esto permitió systemd
para acceder a los módulos una vez que intente ejecutar el script de Python.