GNU/Linux >> Linux Esercitazione >  >> Linux

L'esecuzione dello script Python tramite systemd non riesce a caricare il modulo

Aggiungi questa proprietà a [Service] sezione per assicurarti che systemd eseguito come utente specificato.

User=pi

Fare riferimento alla soluzione di AndyD.


La spiegazione più probabile è che hai impostato alcune variabili d'ambiente (ad esempio un'estensione del tuo PYTHONPATH?) che non sono impostate quando lo script viene eseguito da systemd.

Potresti provare a utilizzare il parametro Environment (vedi [0]), quindi imposta PYTHONPATH (e qualsiasi altra cosa possa influenzarlo) su qualsiasi cosa sia nella tua sessione della console.

[0] http://0pointer.de/public/systemd-man/systemd.exec.html#Environment=


systemd viene eseguito come root. I moduli installati tramite pip sono installati per un utente piuttosto che per il sistema e quindi l'installazione dei moduli senza i privilegi di root li ha resi inaccessibili per root.

Per risolvere questo ho eseguito sudo -H pip install zmq e sudo -H pip3 install zmq per installare i pacchetti sia per Python 2.7 che per Python 3+ per root. Ciò consentiva systemd per accedere ai moduli una volta che tenta di eseguire lo script Python.


Linux
  1. ModuleNotFoundError:nessun modulo denominato "IPython" [fissare]

  2. Verifica che uno script sia in esecuzione?

  3. modulo python bz2 mancante

  4. Esecuzione di uno script Python da PHP

  5. Esecuzione di notify-send come root

Come caricare o scaricare un modulo del kernel Linux

Come eseguire uno script Python in PHP

Come configurare l'esecuzione automatica di uno script Python utilizzando Systemd

Esegui lo script Python tramite crontab

errore python AttributeError:l'oggetto 'module' non ha l'attributo 'sha1'

Lo script Nohup per Python non funziona durante l'esecuzione in background con &