从 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 脚本的主要内容,如果未能解决你的问题,请参考以下文章

Python:从命令行运行小型多行脚本

无法从raspberry pi 2 ver B中的php脚本运行sudo killall python

如何在命令行里运行python脚本

从PHP运行脚本时,RPi GPIO控件丢失(没有任何错误)

从 PHP 启动脚本运行 Python 脚本,但不结束它

'PermissionError:[Errno 13]权限被拒绝',使用批处理文件运行python脚本后