PHP脚本无法正确运行python脚本,但它在终端上正确运行

标签 php python machine-learning scikit-learn postman

所以我有一个 php 脚本,在其中我从应用程序发送所需的数据,然后在 php 脚本中,该数据作为命令行参数传递给 python 脚本。问题是当我从终端运行 python 脚本时,它运行成功,但是当我使用 postman 运行 PHP 脚本时,python 脚本不运行。

<code>$output = shell_exec("python3 final.py $day $month $year $hour 2>&1");</code> 这是我调用 py 脚本的行,当我从终端运行相同的脚本时,它会生成输出,但是当我像这样运行它并转储 $output 时,我收到错误

<code>ModuleNotFoundError: No module named 'sklearn'</code>

但是 sklearn 已经安装,并且它通过终端运行。

请建议我对此问题该怎么办?

最佳答案

现在它可以工作了,以 sudo 身份运行命令并使用 exec() 而不是 shell_exec() 并且还更改了执行命令的用户,请引用此https://raspberrypi.stackexchange.com/a/78156 .

您可能需要绕过用户密码,绕过 www-data 看到这个https://stackoverflow.com/a/24107529/10498074

另请参阅同一页面上的 Jenkins 答案 https://stackoverflow.com/a/24648413/10498074

我的最终命令是 $output = exec("sudo -S -u username/usr/bin/python3/var/www/html/PathTo/final.py $day $month $year $hour 2> &1");

在 sudo visudo 中,我在最后一行添加了命令 www-data ALL =(ALL) NOPASSWD:/usr/bin/python3

尝试再次运行 php 脚本,它成功了!

关于PHP脚本无法正确运行python脚本,但它在终端上正确运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59471352/

相关文章:

python - tensorflow 提要列表功能(多热)到 tf.estimator

machine-learning - 预测中间词 word2vec

php - 如何使用 INNER JOIN 比较表并返回 true?

r - 如何对排名数据建模

php - Ratchet 不工作演示

python - 在Python中从剪贴板复制内容时出现tkinter错误

Python:__slots__ 及其描述符的使用

python - 回到基础 : Scrapy

javascript - 根据数据库结果填充li内容

php - filemtime 在文件修改前后返回相同的值