我在ubuntu 14.04上使用python3.4绑定设置了OpenCV 3.0。我使用virtualenv运行OpenCV。所以,每次我必须运行workon cv
命令。
现在我想运行一个使用exec
命令从PHP使用OpenCV库的python脚本。
exec("workon cv");
exec("python3 hough_circles.py")
这是错误:
sh: 1: workon: not found
Traceback (most recent call last):
File "hough_circles.py", line 1, in <module>
import cv2
ImportError: No module named 'cv2'
答案 0 :(得分:3)
两个问题......
<强> 1。工作路径
错误消息告诉您它不知道workon
的位置,因此您最好告诉它exec()
可以找到它的完整路径,例如:
exec("/usr/local/bin/workon cv");
以上/usr/local/bin
只是一个示例,如果您想知道系统的位置,请运行:
which workon
并使用输出。
<强> 2。子流程是独立的
即使您已正确设置,但执行workon
的进程会退出,然后您将启动一个新的,有光泽的新进程 - 您尚未运行workon
。所以,你最好在同一个过程中做这两件事:
exec("/usr/local/bin/workon cv && /path/to/python3 hough_circles.py");