前提・実現したいこと
ラズペリーパイOSでsystemdを用いた、pythonプログラムの自動起動に失敗する。
Thonny上での実行は問題が無いが、systemd経由だとOPEN-CVのモジュールがオープン出来ない。
半年前までエラーが無く動作していた。今回新しいラズパイに移植する際に、上記問題が発生した。
発生している問題・エラーメッセージ
Thonny(ラズペリーパイOS標準のIDE)からは実行が可能。
.timer
.service
を用いて、起動後、1min後にプログラムが起動するようにしたが
sudo systemctl status leasematCC.service
でステータスを確認すると以下のように
pvencvが起動できずにエラーが発生している。
leasematCC.service - Leasemat Customer Counter System auto boot Loaded: loaded (/etc/systemd/system/leasematCC.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Wed 2021-09-22 09:36:54 JST; 39s ago Main PID: 1016 (code=exited, status=1/FAILURE) 9月 22 09:36:54 raspberrypi systemd[1]: Started Leasemat Customer Counter System auto boot. 9月 22 09:36:54 raspberrypi python3[1016]: Traceback (most recent call last): 9月 22 09:36:54 raspberrypi python3[1016]: File "/home/pi/Leasemat/CC.py", line 43, in <module> 9月 22 09:36:54 raspberrypi python3[1016]: import Camera_Count as CAMC 9月 22 09:36:54 raspberrypi python3[1016]: File "/home/pi/Leasemat/Camera_Count.py", line 13, in <module> 9月 22 09:36:54 raspberrypi python3[1016]: import cv2 as cv 9月 22 09:36:54 raspberrypi python3[1016]: ModuleNotFoundError: No module named 'cv2' 9月 22 09:36:54 raspberrypi systemd[1]: leasematCC.service: Main process exited, code=exited, status=1/FAILURE 9月 22 09:36:54 raspberrypi systemd[1]: leasematCC.service: Failed with result 'exit-code'.
該当のソースコード
/etc/systemd/system に
leasematCC.service
leasematCC.timer
の2つを作成している。
######[leasematCC.serviceの中身]
[Unit] Description= Leasemat Customer Counter System auto boot [Service] ExecStart=/usr/bin/python3 /home/pi/Leasemat/CC.py
######[leasematCC.timerの中身]
[Unit] Description=daily do something [Timer] OnBootSec=1min [Install] WantedBy=timers.target
試したこと
pipでのインストールや
pip3 install opencv-python
$ sudo apt-get install python-opencv
$ sudo apt-get install libopencv-dev
などをネットで調べて試したが解決しない。
###頂いたアドバイスの実行結果
import sys
import os
import pprint
print(sys.executable)
pprint.pprint(sys.path)
print(os.getenv('PYTHONPATH'))
を実行した場合の結果
Thonny上での実行結果の表示
/usr/bin/python3 ['/home/pi/Leasemat', '/usr/lib/python37.zip', '/usr/lib/python3.7', '/usr/lib/python3.7/lib-dynload', '/home/pi/.local/lib/python3.7/site-packages', '/usr/local/lib/python3.7/dist-packages', '/usr/lib/python3/dist-packages'] None
systemdで実行させた場合でのターミナル上で systemctl status での表示
9月 22 14:37:07 raspberrypi systemd[1]: Started Leasemat Customer Counter System auto boot. 9月 22 14:37:07 raspberrypi python3[1016]: /usr/bin/python3 9月 22 14:37:07 raspberrypi python3[1016]: ['/home/pi/Leasemat', 9月 22 14:37:07 raspberrypi python3[1016]: '/usr/lib/python37.zip', 9月 22 14:37:07 raspberrypi python3[1016]: '/usr/lib/python3.7', 9月 22 14:37:07 raspberrypi python3[1016]: '/usr/lib/python3.7/lib-dynload', 9月 22 14:37:07 raspberrypi python3[1016]: '/usr/local/lib/python3.7/dist-packages', 9月 22 14:37:07 raspberrypi python3[1016]: '/usr/lib/python3/dist-packages'] 9月 22 14:37:07 raspberrypi python3[1016]: None 9月 22 14:37:07 raspberrypi systemd[1]: leasematCC.service: Succeeded.
回答1件
あなたの回答
tips
プレビュー