来自php的exec python

时间:2015-08-03 07:18:24

标签: php python

我正在尝试使用

从php运行python脚本
$res = '';
exec('./home/Desktop/Scripts/fetch_matches.py', $res);

我的python文件以#!/usr/bin/python开头并具有exec权限。现在我只有一个打印,但它不起作用(var_dump($res)给我一个空数组)。有什么遗漏?

另外,如果我在该脚本中有不同的方法,我该如何调用它们?

2 个答案:

答案 0 :(得分:1)

如果您将exec更改为包含/usr/bin/python,则应该按预期工作:

exec('/usr/bin/python ./home/Desktop/Scripts/fetch_matches.py', $res);

在这些情况下,你应该使用绝对路径(检查realpath以及chdir以及你需要做的任何转义。

我不完全熟悉文件中shebang的运行方式,但我知道如果从PHP调用,只需在你运行的命令中包含解释器就好了。

答案 1 :(得分:0)

你需要摆脱路径前的/home。如果它是普通的Unix / Linux系统,.位于文件系统的根目录中。 /home表示当前目录,因此除非您在运行PHP程序的目录中重新创建Desktop文件系统,否则路径不正确。此外,除非您的用户名为/home/,否则您错过了Desktop/pwd之间的目录 - 它应该是您的用户名。 .命令永远不会在当前工作目录之前返回python -c "from fetch_matches import Fetcher; Fetcher()"

关于第二个问题,请参阅calling Python from the command line上的文档。您可以从命令行执行任意代码,这可能是

的行
var str = "The rain in SPAIN stays mainly in the plain"; 
var res = str.match(/ain/g);