GNU/Linux >> Tutoriales Linux >  >> Linux

La ejecución del script de Python a través de systemd no puede cargar el módulo

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.


Linux
  1. Evitar que un script bash se ejecute simultáneamente

  2. Error de instalación de Python - Lo siento:UnicodeError:los escapes no admitidos no pueden cargar el módulo UnicodeData [Resuelto]

  3. ModuleNotFoundError:ningún módulo llamado 'IPython' [Fijar]

  4. ¿Comprobar que se está ejecutando un script?

  5. Tome una captura de pantalla a través de un script de Python en Linux

Cómo cargar o descargar un módulo del kernel de Linux

Cómo ejecutar un script de Python en PHP

Cómo configurar la ejecución automática de un script de Python usando Systemd

falta el módulo python bz2

Ejecutando notificar-enviar como root

El script Nohup para Python no funciona cuando se ejecuta en segundo plano con &