我正在尝试使用
从php运行python脚本$res = '';
exec('./home/Desktop/Scripts/fetch_matches.py', $res);
我的python文件以#!/usr/bin/python
开头并具有exec权限。现在我只有一个打印,但它不起作用(var_dump($res)
给我一个空数组)。有什么遗漏?
另外,如果我在该脚本中有不同的方法,我该如何调用它们?
答案 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);