我需要从php运行一个python脚本


I need to run a python script from php

我必须使用PHP为用python编写的软件设计一个接口。目前,该软件是从命令行通过传递输入来使用的,大多数输入都是文本文件。有一系列的步骤,每一步都会调用一个python脚本。每个步骤都将一个文本文件作为输入,并在用户决定的文件夹中生成一个输出文本文件。我使用php的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

尝试这个

$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#108713

医生还说它是

成功时返回命令输出的最后一行,失败时返回FALSE失败

因此,如果你试图获得多行,你可能需要将其重定向到一个文件并在中读取。

不要使用system(),而是尝试用"ticks"包围代码。。。

它具有类似的功能,但返回输出的方式略有不同。。