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