Мне нужно запустить скрипт Python из PHP

Я должен разработать интерфейс с использованием PHP для программного обеспечения, написанного на Python. В настоящее время это программное обеспечение используется из командной строки, передавая ввод, в основном ввод является текстовым файлом. Есть ряд шагов, и для каждого шага вызывается скрипт на python. Каждый шаг принимает текстовый файл в качестве входных данных и генерирует выходной текстовый файл в папке, выбранной пользователем. я использую system() из php, но я не вижу вывод, но когда я использую ту же команду из командной строки, он генерирует вывод. Пример команды:
python /software/qiime-1.4.0-release/bin/check_id_map.py -m /home/qiime/sample/Fasting_Map.txt -o /home/qiime/sample/mapping_output -v

3 ответа

Решение

Попробуй это

$script = 'software/qiime-1.4.0-release/bin/check_id_map.py -m /home/qiime/sample/Fasting_Map.txt -o /home/qiime/sample/mapping_output -v';
$a = exec($script);

Если вы не в Windows, вы пытались добавить 2>&1 (перенаправить stderr в stdout) в конец команды?

$output = system("python /software/qiime-1.4.0-release/bin/check_id_map.py -m /home/qiime/sample/Fasting_Map.txt -o /home/qiime/sample/mapping_output -v 2>&1", $exitcode);

Найдено по http://www.php.net/manual/en/function.system.php

Также док говорит, что это

Возвращает последнюю строку вывода команды в случае успеха и FALSE в случае ошибки.

Поэтому, если вы пытаетесь получить несколько строк, вам может понадобиться перенаправить его в файл и прочитать его в.

Вместо system() попробуйте окружить код в `ticks`...

Он имеет похожую функциональность, но ведет себя немного по-другому в том, как возвращает результат.

Другие вопросы по тегам