一旦虚拟环境被激活((venv) pi@raspberrypi:~/test $ python3 openCV_motion_detection_cam1.py
),使用cv2的python脚本就可以从命令行正常运行。但是当从普通命令行(pi@raspberrypi:~/test $ python3 openCV_motion_detection_cam1.py
)运行时,它会输出错误——“没有名为‘cv2’的模块”,它已经在/home/pi/test/venv/lib/python3.7/site包中。我是个新手,希望您的评论对Noob友好。请帮忙
虚拟环境的存在是为了将各个python程序所需的模块彼此隔离开来。安装cv2时,您将其安装在当前活动的venv中。当venv未激活时,其模块将不可用。简单的解决方案是在venv中运行程序
您可以通过模块路径的
/venv/lib/python37/site-packages
部分判断模块是否存在于venv中如果要在虚拟环境中直接运行脚本,请编辑shebang行以包含该环境中的Python解释器:
该解释器将在其父目录中找到
pyvenv.cfg
文件,并相应地调整所有路径。这相当于激活Environment这个过程可以自动化。使用
setup.py
创建一个包,并声明哪些文件是脚本。安装包后,脚本将安装在<venv>/bin
子目录中,并带有正确的shebang行您可能希望从
/usr/bin
创建一个符号链接,以使脚本位于路径中相关问题 更多 >
编程相关推荐