使用 XAMPP 在 MAC 上从 PHP 调用 Python 脚本

Calling a Python script from PHP, on a MAC with XAMPP

我想建一个RESTfulAPI。 我正在 MAC 上工作,我安装了 XAMPP 服务器。 我有一个 Python 脚本,我想从 PHP.

调用它

我的 PHP 文件如下所示:

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

这没有问题。

我的 python 代码如下:

import sys
#import mysql.connector
def 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 之上,我只需要调用我的脚本。知道哪里出了问题吗?

谢谢

请试试这个:

#!/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;

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

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

至:

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

它奏效了。 感谢您帮助 Max Muster