运行 使用 RPi 启动时的 OpenCV 脚本

Running OpenCV script on boot w/ RPi

我有一个 Raspberry Pi 3 运行ning python 3.7.2 和 OpenCV 4.0.1。我试图在 pi 启动时 运行 一个 OpenCV 脚本,但似乎没有任何方法有效。每次我尝试从 .bashrc 之类的东西 运行 脚本时,它都会说它不在 cv 环境中,即使我将 'workon cv' 放在 运行 脚本的命令上方也是如此。非常感谢任何帮助,谢谢。

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

python myscript

其中 'myscript' 是您要执行的那个? 我 运行 在我的 linux 服务器上遇到启动时调用脚本的类似问题。我的解决方法是找到并调用我想要 运行.

的 python 版本的绝对路径

例如: 如果我使用 python 的内置版本,我在 /usr/bin/python3 到 运行 我创建的一个小程序,我看到这个:

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 运行ning 的版本可能与登录 pi 时的 运行ning 版本不同。这可能是一个路径问题。 运行:

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 下有一个非常不同的版本 运行ning,它不会有与以前安装相同的模块。最后我会做两件事。首先找到你想要 运行 的 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

您可以在 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.stackexchange, link for detial on raspberrypi forums