通过使用 php 运行 python 脚本 - 在控制台中工作但不在网络浏览器中工作

问题描述

我正在用 PHP 创建一个 API,它将一些参数传递给 python 并生成 pdf 格式的报告。 在 report_gen.py 文件中,我有代码获取参数并生成 pdf。通过命令行成功运行,但是当我从浏览器或邮递员运行 PHP 文件时,它不起作用。 我想通过 cronjob 运行我的 PHP 文件,以便它在特定时间自动调用

$data = '基本威尔·约翰尼·威尔逊·史密斯';

$command = escapeshellcmd("python3 report_gen.py $data");

$output = shell_exec($command); 回声$输出;

解决方法

可能(至少)有两个问题。

首先您需要检查/知道服务器女佣使用另一个环境。我相信,您没有使用 webserver-user 进行本地检查。所以我会尝试使用绝对路径。您还必须确保 python 环境(无论您配置什么)必须与您的本地用户相同。

其次,您需要确保您拥有运行该文件的所有权限(网络服务器使用的网络服务器至少需要对 report_gen.py 具有读取权限)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...