使用 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
我想建一个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