为了账号安全,请及时绑定邮箱和手机立即绑定

在带有 XAMPP 的 MAC 上从 PHP 调用 Python 脚本

在带有 XAMPP 的 MAC 上从 PHP 调用 Python 脚本

PHP
莫回无 2023-04-02 10:48:22
我想构建一个 RESTful API。我在 MAC 上工作,我安装了 XAMPP 服务器。我有一个 Python 脚本,我想从 PHP 调用它。我的 PHP 文件如下所示:$output = shell_exec("python $pyfilepath $post->id $post->name");echo $output;这没有问题。我的 python 代码如下所示:import sys#import mysql.connectordef my_results(id,name):    print("My args are:",id,name)if __name__ == '__main__':    my_results(sys.argv[1],sys.argv[2])我可以读取参数并将其传递给 python 脚本,但是如果我尝试激活:import mysql.connector我没有从 my_results 定义中得到任何结果。我的一切都建立在 python 上,我只需要调用我的脚本。知道有什么问题吗?谢谢
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

请试试这个:


#!/usr/bin/env  php


ob_start();

passthru("python $pyfilepath $post->id $post->name");

$output = ob_get_clean(); 

或者试试这个


$output = shell_exec(escapeshellcmd("python $pyfilepath $post->id $post->name"));

echo $output;

尝试一个简单的脚本 test.py


#!/usr/bin/env  php

print("hello")

并这样称呼它


$output = shell_exec(escapeshellcmd("test.py"));

echo $output;


查看完整回答
反对 回复 2023-04-02
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

经过大量搜索,我更改了:

$output = shell_exec("python $pyfilepath $post->id $post->name");

到:

$output = shell_exec("/anaconda3/bin/python3 $pyfilepath $post->id $post->name");

它奏效了。


查看完整回答
反对 回复 2023-04-02
  • 2 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信