图像处理(带 PHP 的 OpenCV)- exec 命令问题

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

我在 ubuntu 14.04 上设置了带有 python3.4 绑定的 OpenCV 3.0。我 运行 OpenCV 使用 virtualenv。所以,每次我必须 运行 workon cv 命令。
现在我想 运行 一个 python 脚本,它使用来自 PHP 的 OpenCV 库,使用 exec 命令。

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