我需要从php运行python脚本

时间:2012-07-31 04:33:44

标签: php python qiime

我必须使用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

3 个答案:

答案 0 :(得分:2)

如果您不在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   故障。

因此,如果您尝试获取多行,则可能需要将其重定向到文件并将其读入。

答案 1 :(得分:2)

试试这个

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

答案 2 :(得分:0)

而不是system()尝试围绕`ticks` ...

中的代码

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