起動時に環境変数を初期化できません。

起動時に環境変数を初期化できません。

コンソールで手動で実行すると、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のランレベル

おすすめ記事