【问题标题】:Can't execute python script from PHP (apache2)无法从 PHP (apache2) 执行 python 脚本
【发布时间】:2025-01-10 02:45:02
【问题描述】:

我想在我的 macos 上使用 apache2 从 PHP 文件执行 Python 脚本。我能够执行简单的 python 脚本,例如:

来自 PHP:

$result = shell_exec("python /Library/…./example.py '$name' ‘$email’ ”);
var_dump($result);

到 Python

import sys

x = sys.argv[1]
y = sys.argv[2]

print("name: " + x + "<br>")
print("email: " + y + "<br>")

输出是:

但是当我尝试导入像这样的包时:

import openpyxl
import numpy as np
import matplotlib.pyplot as plt

我明白了:

我的问题是,有谁知道:

1 – 我怎样才能使这些(和任何其他)包工作?

2 – shell_exec 当前正在执行 python2。如何添加python3?(如果我写python3而不是python将不起作用)

【问题讨论】:

    标签: python php apache2 shell-exec


    【解决方案1】:

    如果以后有人遇到同样的问题,这就是我发现的。

    通过 shell_exec 执行一些不同的命令,我注意到它的行为与我的终端不同。

    所以我发现当我在shell_exec上执行python3时,它并没有指向正确的地址,那么我所要做的就是传递正确的地址:

    $result = shell_exec("/Library/Frameworks/Python.framework/Versions/3.7/bin/python example.py '$name' ‘$email’ ”);
    var_dump($result);
    

    现在脚本可以工作了:)

    【讨论】:

      最近更新 更多