从 PHP 文件运行 python 脚本
Posted
技术标签:
【中文标题】从 PHP 文件运行 python 脚本【英文标题】:Run python script from PHP file 【发布时间】:2020-08-19 17:34:10 【问题描述】:我正在尝试使用 php 运行 python 文件,但该文件不打印 Hi,我只打印“Whatsup”。该脚本在用户单击提交按钮时运行。我在 OSX 上,所有文件路径都是正确的。我按照另一篇文章中的建议做了 chmod +x hi.py
hi.py
#set up classes
# figure out regex
#!/Library/Frameworks/Python.framework/Versions/3.8/bin/python3
print("Hi")
signup.inc.php
else
$command=escapeshellcmd('/Users/name/Documents/CPSC_Courses/CPSC353/CoronaVirus/webScrap.py');
$output = shell_exec($command);
echo $output;
echo "Whatsup";
exit();
【问题讨论】:
这能回答你的问题吗? Running a Python script from PHP 很遗憾没有。我对文件做了 chmod +x myscript.py ,但仍然没有。 作为一个快速测试,将 python 脚本复制到与您的 php 脚本相同的目录下,看看是否运行。 刚刚做了。结果相同。然后我切换了signup.inc.php中的路径以匹配新文件并且什么都没有。 这个命令:/usr/bin/python /Users/name/Documents/CPSC_Courses/CPSC353/CoronaVirus/webScrap.py
在终端工作?
【参考方案1】:
你的python文件在php文件中叫做hi.py,你想运行webScrap.py。您没有注意到文件名不同吗?
【讨论】:
这更像是您可以添加到问题而不是答案的评论【参考方案2】:你需要告诉使用哪个python + 它是这样的:
else
$command=escapeshellcmd('/usr/bin/python /Users/name/Documents/CPSC_Courses/CPSC353/CoronaVirus/webScrap.py');
$output = shell_exec($command);
echo $output;
echo "Whatsup";
exit();
Python3 的 OR:
else
$command=escapeshellcmd('/usr/local/bin/python3 /Users/name/Documents/CPSC_Courses/CPSC353/CoronaVirus/webScrap.py');
$output = shell_exec($command);
echo $output;
echo "Whatsup";
exit();
检查您的 Python 在哪里并为其添加完整路径。
我只会使用:
echo shell_exec("/usr/local/bin/python3 /Users/name/Documents/CPSC_Courses/CPSC353/CoronaVirus/webScrap.py");
【讨论】:
$command = escapeshellcmd('/Library/Frameworks/Python.framework/Versions/3.8/bin/python3 /Users/name/Documents/CPSC_Courses/CPSC353/CoronaVirus/includes/webScrap.py') ;更改了命令以显示这一点,但仍然得到相同的结果。使用“which python3”获取python3的路径 如果那是你的 Python 所在的地方,那么它就可以工作。为什么你使用 escapeshellcmd 它不依赖于用户输入? 这正是其他堆栈溢出问题的答案所建议的。我应该使用什么? 还有其他方法可以找到我的 python 吗?如果我完成了我的文件,我有一个名为 python 3.8 的文件夹,但没有 .exe 文件可以指向。 “哪个 python”得到了 /usr/bin/python。试过了,结果一样以上是关于从 PHP 文件运行 python 脚本的主要内容,如果未能解决你的问题,请参考以下文章
无法从raspberry pi 2 ver B中的php脚本运行sudo killall python