Команда PHP exec запускает скрипт python, но не python3

В настоящее время у меня установлен Python 2.7 как часть OSX, а недавно установлен 3.5.2.

Я запускаю локальный веб-сервер на моем Mac с помощью XAMPP, и когда я выполняю скрипт python из apache, он загружается нормально:

$executePython = "python " . __DIR__ . "/cycle/cutoff.py $device_id $processPreviousMinutes";
exec("$executePython");

Тем не менее, когда я заменяю python с python3 Мой сценарий отказывается работать. Я могу вызвать его вручную из командной строки, используя обе версии, однако похоже, что учетная запись / демон apache не имеет доступа к python3. Будет ли это что-то делать с файлом конфигурации, который я пропустил?

2

Решение

Мы не хотим портить системный путь в последней версии OSX. Что делать, если вы добавите путь python3 в ваш скрипт, как это, а затем делать обычные вещи

putenv("PATH=/usr/local/bin/:" . exec('echo $PATH'));
$executePython = "python3 " . __DIR__ . "/cycle/cutoff.py $device_id $processPreviousMinutes";
exec("$executePython");

putenv просто добавляет ваш путь к python3 к любому текущему пути в apache вашего XAMPP.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]