我正在尝试围绕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脚本。
注意:在终端中运行此程序很好。
答案 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可执行文件的库,即在虚拟环境中。