Ошибка импорта при импорте rospy при вызове скрипта через службу systemd

#python-3.x #sh #ros #systemd

#python-3.x #sh #ros #systemd

Вопрос:

Я пытаюсь запустить скрипт python, который использует rospy. Обычно, когда этот скрипт вызывается через командную строку python3 npnt_main.py , он работает нормально. Но при запуске через службу systemd я получаю следующую ошибку:

 ModuleNotFoundError: No module named 'rospy'
  

Служба systemd выглядит следующим образом:

 [Unit]

Description=Npnt Compliance service

[Service]

WorkingDirectory=/srv/maverick/code/maverick/custom-modules/NpntCompliance/catkin_ws/src/npnt_test/

ExecStart=/bin/sh /srv/maverick/code/maverick/custom-modules/NpntCompliance/catkin_ws/src/npnt_test/run/run_npnt.sh amp;

User=root

Restart=on-failure

RestartSec=3

[Install]

WantedBy=multi-user.target
  

Сценарий run_npnt.sh заключается в следующем:

 #!/usr/bin/env bash

# To start npnt_main and handle crashes

BASE="/srv/maverick/code/maverick/custom-modules/NpntCompliance/catkin_ws/src/npnt_test"

echo "Starting npnt"

LOGFILE="$BASE/log/npnt_syslogs.log"
[ -e $LOGFILE ] amp;amp; rm $LOGFILE > /dev/null 2>amp;1

echo "Old Logfile: $LOGFILE deleted"

echo "Running npnt"

python3 $BASE/scripts/npnt_main.py > $LOGFILE

ret=$?
if [ $ret -ne 0 ]; then
    echo "npnt_main crashed. Restarting"
fi
  

Как я могу запустить его через службу systemd без получения ImportError?