Python ImportError для службы systemd

Я пытаюсь запустить скрипт python на raspby через службу systemd, но он не может найти ни один из модулей, установленных через pip3, и выдает ошибку:

raspberrypi python3[1017]: ModuleNotFoundError: No module named 'paho'

Запуск того же сценария через терминал SSH работает нормально. Судя по моему исследованию, это могло относиться к PYTHONPATH, хотя мне не удалось найти его в .bashrc.

Здесь устанавливаются модули, которые не могут быть найдены:

./.local/lib/python3.7/site-packages (1.5.0)

Это служебный файл в /etc/systemd/user/mytest.service, который неудачно запускает скрипт:

[Unit]
Description=TestScript Service
After=network-online.target

[Service]
Type=idle
ExecStart=/usr/bin/python3 /home/pi/MyProject/my_script.py > /home/pi/my_script.log 2>&1

[Install]
WantedBy=network-online.target

Как я могу сообщить службе, где расположены модули?

С уважением


person Tasmotanizer    schedule 23.04.2020    source источник
comment
Вы можете запустить команду which python3, чтобы убедиться, что путь python совпадает с тем, который вы помещаете в свой служебный файл.   -  person Stephan Guingor    schedule 23.04.2020
comment
запуск python3 /home/pi/MyProject/my_script.py успешно выполняет скрипт. Но когда сценарий запускается через службу, он терпит неудачу.   -  person Tasmotanizer    schedule 23.04.2020
comment
Будет ли он по-прежнему терпеть неудачу, если вместо записи / usr / bin / python3 в службе вы используете python3?   -  person Stephan Guingor    schedule 23.04.2020
comment
Вы установили модули с pip3 install --user? Если да, установите с sudo pip3 install.   -  person Erich    schedule 23.04.2020
comment
Попробуйте как-добавить-пакет-в-sys-path-for-testing   -  person stovfl    schedule 23.04.2020
comment
@StephanGuingor он не работает в обоих случаях, и для установки библиотеки использовалась sudo pip3 install paho-mqtt.   -  person Tasmotanizer    schedule 24.04.2020


Ответы (1)


Вот быстрое решение проблемы:

Указав пользователя в файле .service в разделе [Service], скрипт python найдет все установленные библиотеки.

[Service]
User=pi
person Tasmotanizer    schedule 23.04.2020