Я установил OpenCV 3.0 с привязкой python3.4 на Ubuntu 14.04. Я запускаю OpenCV, используя virtualenv. Таким образом, каждый раз, когда я должен запустить workon cv
команда.
Теперь я хочу запустить скрипт Python, который использует библиотеку OpenCV из PHP, используя 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");
Других решений пока нет …