运行os.system virtualenv OpenCV

时间:2019-08-05 14:11:10

标签: python opencv raspberry-pi virtualenv

我正在尝试围绕OpenCV构建一个简单的Python GUI,以便可以轻松运行面部识别命令。我使用的是Raspberry Pi,因此是Raspbian来做的

这是单击按钮的情况,并且执行os.system命令以允许运行各种功能。

问题在于尝试在Virtual Python Environment中运行这些功能。我需要进入virtualenv才能访问所需的模块,但是我了解每次运行os.system命令时都会创建一个新的shell,因此将我带离了虚拟环境。

我已经考虑在一个os.system中运行我的函数,但是仍然出现导入模块错误。

我认为需要花几分钟的时间才能完成的工作花了我几天的时间。

对此的任何帮助都会令人惊奇。

谢谢。

这是我当前的代码:

from tkinter import *
import os
from tkinter import messagebox

# creating tkinter window 
root = Tk() 
root.geometry('500x500')
root.title("Student Attendnace System")



def stillImage():
    os.system("/home/pi/.virtualenvs/cv/bin/activate & python recognize_faces_image.py ---encodings encodings.pickle --detection-method hog --image examples/example_01.jpg")



btn3 = Button(root, text = 'Detect Faces From Image', command = stillImage)
btn3.grid(column=1, row=2)

mainloop() 

这个想法是进入虚拟环境并执行另一个带有面部检测参数的python脚本。

注意:在终端中运行此程序很好。

1 个答案:

答案 0 :(得分:2)

我会直接使用virtualenv中的python:

os.system("/home/pi/.virtualenvs/cv/bin/python recognize_faces_image.py ---encodings encodings.pickle --detection-method hog --image examples/example_01.jpg")

要详细说明使用virtualenv中的python可执行文件运行的脚本,将查找相对于python可执行文件的库,即在虚拟环境中。