Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为Raspberry PI在启动时运行OpenVINO Python脚本_Python_Raspberry Pi_Raspberry Pi3_Openvino_Raspbian Buster - Fatal编程技术网

为Raspberry PI在启动时运行OpenVINO Python脚本

为Raspberry PI在启动时运行OpenVINO Python脚本,python,raspberry-pi,raspberry-pi3,openvino,raspbian-buster,Python,Raspberry Pi,Raspberry Pi3,Openvino,Raspbian Buster,我使用的是运行Raspbian 10(Buster)的Raspberry Pi 3 Model B Rev 1.2。我想在启动时运行一个python脚本,它使用OpenVINO和OpenCV来检测对象并显示来自网络摄像头的流 我创建了一个shell脚本launcher.sh,其中包含 #!/bin/sh /opt/inte/openvino/bin/setupvars.sh /usr/bin/python3 /home/pi/project/run.py 我运行了$chmod 775 lau

我使用的是运行Raspbian 10(Buster)的Raspberry Pi 3 Model B Rev 1.2。我想在启动时运行一个python脚本,它使用OpenVINO和OpenCV来检测对象并显示来自网络摄像头的流

我创建了一个shell脚本
launcher.sh
,其中包含

#!/bin/sh

/opt/inte/openvino/bin/setupvars.sh
/usr/bin/python3 /home/pi/project/run.py
我运行了
$chmod 775 launcher.sh
,并确认脚本与
$sh launcher.sh
一起工作

为了在启动时运行脚本,我使用了
$sudo crontab-e
,并在底部添加了
@reboot sh/home/pi/project/launcher.sh>/home/pi/logs/cronlog 2>&1

脚本在重新启动时运行。日志显示OpenVINO环境已初始化,但日志还表明我收到ModuleNotFoundError:没有名为“OpenVINO”的模块。我猜它只有在从终端运行时才起作用,因为我每次都让bash.rc设置OpenVINO环境


我做错了什么?有没有更好的办法在巴斯特身上做到这一点

我无法解决我的具体问题,但我确实找到了在启动时运行脚本的方法

我在.bashrc的末尾添加了以下行

source /opt/intel/openvino/bin/setupvars.sh
cd /home/pi/project
python3 run.py 
cd 
初始化OpenVINO环境并在每次打开新终端时运行脚本,然后通过在/etc/xdg/lxsession/LXDE pi/autostart的末尾添加
@LXTerminal
使LXTerminal在引导时运行


这是一种非常老套的方法,如果你打算用你的Pi做任何其他事情,这是不切实际的。任何建议都将不胜感激

多亏了英特尔公司的Mauricio.R,我才能够找到合适的解决方案

  • 创建一个初始化OpenVINO的脚本,并使用
    nano~/OpenVINO应用程序脚本启动我的python脚本,脚本内容如下:
  • #/bin/bash
    source/opt/intel/openvino/bin/setupvars.sh
    /usr/bin/python3/path/to/script/run.py
    
  • 使用
    chmod u+x~/openvino-app-script
    更改bash脚本的权限和所有权。您应该使用
    bash./openvino应用程序脚本运行该脚本,以确保该脚本正常工作

  • 使用带有内容的
    sudo nano/etc/systemd/system/openvino app.service
    创建服务文件

  • [单位]
    Description=OpenVINO Python脚本
    After=network.target
    [服务]
    Environment=“DISPLAY=:0”
    Environment=“XAUTHORITY=/home/pi/.XAUTHORITY”
    ExecStart=/home/pi/openvino应用程序脚本
    WorkingDirectory=/home/pi
    标准输出=继承
    StandardError=inherit
    重新启动=故障时
    用户=pi
    [安装]
    WantedBy=graphical.target
    
  • 使用sudo systemctl enable openvino app.service激活服务
  • 通过将
    启用
    更改为
    禁用
    状态


    这个解决方案对我的项目非常有效,它使用OpenCV显示带有覆盖的视频流,并使用NCS执行推断。

    您的bash rc除了/opt/inte/openvino/bin/setupvars.sh之外还做了其他事情吗?除了运行setupvars.shI的一行之外,它没有被修改。我想您应该这样称呼它:“source/opt/inte/openvino/bin/setupvars.sh”以导出所有内容从setupvars.sh到使用脚本的变量