在带有RPi的引导上运行OpenCV脚本

时间:2019-02-04 23:09:27

标签: python opencv raspberry-pi computer-vision raspberry-pi3

我有一个运行python 3.7.2和OpenCV 4.0.1的Raspberry Pi 3。我正在尝试在pi启动时运行OpenCV脚本,但是似乎没有方法起作用。每次我尝试从.bashrc之类的文件运行脚本时,都会说它不在cv环境中,即使我在命令上方放置“ workon cv”来运行该脚本。谢谢您的任何帮助。

2 个答案:

答案 0 :(得分:0)

我将运行python文件或/etc/rc.local中的任何启动文件。 https://unix.stackexchange.com/questions/49626/purpose-and-typical-usage-of-etc-rc-local 可能有助于解释。
另外,我相信启动时运行的python版本与登录到shell时正在运行的版本不同。 运行脚本时,您只是从命令行调用吗?

python myscript

您要执行的“ myscript”在哪里? 我遇到了类似的问题,在Linux服务器上的启动时调用脚本。对我来说,解决方法是找到并调用要运行的python版本的绝对路径。

例如: 如果我使用/ usr / bin / python3上的内置python版本来运行我创建的小程序,则会看到以下内容:

scarter@sb-gateway:~$ /usr/bin/python3 camera_sentry_beta_v2.py
Traceback (most recent call last):
  File "camera_sentry_beta_v2.py", line 3, in <module>
    import cv2
ImportError: No module named 'cv2'
scarter@sb-gateway:~$

好像我调用了正确版本的python一样,其中安装了所有模块(我正在使用anaconda)

scarter@sb-gateway:~$ /home/scarter/anaconda3/envs/ne/bin/python read_temp.py

我的脚本有效。 引导时运行的python版本可能与登录pi时运行的版本不同。这可能是路径问题。 运行:

echo $PATH

获取登录时pi加载的路径的列表。能否运行该命令并提供输出?

例如,这是我的路径:

/home/scarter/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

我知道我在/ home / anaconda3 / bin下有一个python版本,它将首先运行。我也知道我在/ usr / bin下有一个完全不同的版本,它将与以前的安装没有相同的模块。最后我要做两件事。首先找到您要运行的python的绝对路径,并在启动时运行脚本时调用它。其次,如果可以的话,我尝试使用不同于.bashrc的位置来调用脚本。

此外,关于“ workon”命令。这表明您已经创建了一个虚拟环境以在其中运行python。 https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html

$ workon
$ mkvirtualenv mynewenv
New python executable in mynewenv/bin/python
Installing setuptools.............................................
..................................................................
..................................................................
done.
(mynewenv)$ workon
mynewenv
(mynewenv)$

例如,如果您如上所述创建了一个环境,则需要从mynewenv/bin/python

调用python。

答案 1 :(得分:0)

您可以在自动启动时在LEXD-pi文件夹上添加此脚本

转到./home/pi/.config/lxsession/LXDE-pi/

sudo nano autostart

    @lxpanel --profile LXDE
    @pcmanfm --desktop --profile LXDE
    @xscreensaver -no-splash
    @/usr/bin/[python3/python] [your script address]

运行脚本,然后启动xstart

有关此主题的更多信息:

Top issue on raspberrypi.stackexchangelink for detial on raspberrypi forums