GNU/Linux >> Belajar Linux >  >> Linux

Menjalankan skrip Python melalui systemd gagal memuat modul

Tambahkan properti ini ke [Service] bagian untuk memastikan systemd jalankan sebagai pengguna yang ditentukan.

User=pi

Lihat solusi AndyD.


Penjelasan yang paling mungkin adalah bahwa Anda memiliki beberapa variabel lingkungan yang disetel (misalnya ekstensi PYTHONPATH Anda?) yang tidak disetel saat skrip dijalankan oleh systemd.

Anda dapat mencoba menggunakan parameter Lingkungan (lihat [0]) jadi setel PYTHONPATH (dan apa pun yang dapat memengaruhi ini) ke apa pun yang ada di sesi konsol Anda.

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


systemd berjalan sebagai root. Modul dipasang melalui pip diinstal untuk pengguna, bukan untuk sistem, sehingga menginstal modul tanpa hak akses root membuat modul tidak dapat diakses oleh root.

Untuk mengatasi ini saya menjalankan sudo -H pip install zmq dan sudo -H pip3 install zmq untuk menginstal paket untuk Python 2.7 dan Python 3+ untuk root. Ini mengizinkan systemd untuk mengakses modul setelah mencoba mengeksekusi skrip Python.


Linux
  1. Memeriksa Skrip Apakah Berjalan?

  2. Menjalankan skrip Python dari PHP

  3. kesalahan python AttributeError:objek 'modul' tidak memiliki atribut 'sha1'

  1. Menjalankan Pycharm sebagai root dari launcher

  2. Bagaimana cara mengetahui apakah httpd sedang berjalan atau tidak melalui baris perintah?

  3. Meminta pengguna untuk login sebagai root saat menjalankan skrip shell

  1. Mencegah skrip bash berjalan secara bersamaan

  2. Kesalahan Instalasi Python - Maaf:UnicodeError:lolos tidak didukung tidak dapat memuat modul unicodedata [Terpecahkan]

  3. Skrip mulai systemd postgresql