无法从 PHP (apache2) 执行 python 脚本
Can't execute python script from PHP (apache2)
我想在我的 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 将不起作用)
万一以后有人遇到同样的问题,以下是我的发现。
通过 shell_exec 执行一些不同的命令,我注意到它的行为与我的终端不同。
所以我发现当我在 shell_exec 上执行 python3 时,它没有指向正确的地址,然后我所要做的就是传递正确的地址:
$result = shell_exec("/Library/Frameworks/Python.framework/Versions/3.7/bin/python example.py '$name' ‘$email’ ”);
var_dump($result);
现在脚本可以运行了:)
我想在我的 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 将不起作用)
万一以后有人遇到同样的问题,以下是我的发现。
通过 shell_exec 执行一些不同的命令,我注意到它的行为与我的终端不同。
所以我发现当我在 shell_exec 上执行 python3 时,它没有指向正确的地址,然后我所要做的就是传递正确的地址:
$result = shell_exec("/Library/Frameworks/Python.framework/Versions/3.7/bin/python example.py '$name' ‘$email’ ”);
var_dump($result);
现在脚本可以运行了:)