콘솔에서 수동으로 실행하면 Raspberry Pi에서 성공적으로 실행되는 Python 스크립트를 작성했습니다. 재부팅 시 스크립트가 시작되기를 원했기 때문에 디렉터리를 변경하고 환경을 설정하고 Python 스크립트를 실행하는 bash 스크립트를 작성했습니다. 그런데 로그를 확인한 결과 라이브러리를 가져오려고 할 때 오류가 발생하는 것을 발견했습니다. 다음 줄을 실행한 후:
from openvino.inference_engine import IENetwork, IEPlugin
오류 발생:
Traceback (most recent call last):
File "realtime_objectdetection_and_tracking_async.py", line 23, in <module>
from custom_module... ImportError: No module named 'openvino.inference_engine'
콘솔에서 동일한 줄을 실행하면 오류가 발생하지 않습니다.
pi@raspberrypi:~/workspace/counting-cars-with-backend-conn $ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39) [GCC 6.3.0 20170516] on
linux Type "help", "copyright", "credits" or "license" for more information.
>>> from openvino.inference_engine import IENetwork, IEPlugin
따라서 OpenVINO 설치 중에 .bashrc에 다음 줄을 추가하십시오.
# OpenVINO
source ~/inference_engine_vpu_arm/bin/setupvars.sh
Python 스크립트를 실행하기 전에 시작 스크립트에서 동일한 작업을 시도했습니다.
#!/bin/bash
source /home/pi/inference_engine_vpu_arm/bin/setupvars.sh
cd /home/pi/workspace/counting-cars-with-backend-conn
python3 realtime_objectdetection_and_tracking_async.py &
그런 다음 crontab -e를 실행하여 cron 테이블에 스크립트를 추가했습니다.
@reboot sh /home/pi/run_object_detection_and_tracking.sh
이 방법으로는 문제(위의 ImportError)가 해결되지 않기 때문에 콘솔에서 Python 스크립트를 실행하는 것과 동일한 동작을 얻으려면 어떤 추가 구성/수정을 수행해야 하는지 모르겠습니다.
답변1
스크립트를 /etc/init.d에 넣고 심볼릭 링크를 /etc/rc5.d에 넣고 스크립트에 chmod +x를 실행하는 것이 좋습니다. 이렇게 하면 터미널 시작 시 사용할 수 있는 동일한 콘텐츠가 있을 때 스크립트를 실행해야 합니다. 따라서 더 이상 오류가 발생하지 않아야 합니다.
인용하다:Linux의 런레벨