시작 시 환경 변수를 초기화할 수 없습니다.

시작 시 환경 변수를 초기화할 수 없습니다.

콘솔에서 수동으로 실행하면 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의 런레벨

관련 정보