图像处理(OpenCV with PHP) - exec 命令出现问题


Image Processing (OpenCV with PHP) - Issue with the exec command

我已经在ubuntu 14.04上设置了OpenCV 3.0,并绑定了python3.4。我使用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'

两个问题...

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");