'python' 不是使用 PHP passthru() 的内部或外部命令,也不是可运行的程序或批处理文件

'python' is not recognized as an internal or external command, operable program or batch file using PHP passthru()

我正在尝试使用 passthru() 函数从 php 调用我的 python 脚本。我已经成功地做到了这一点,并且为了开发我使用了 xampp ,现在我手动安装了 apache,php 和其他附加组件。 我还对 apache conf 进行了更改以使我的 python 脚本工作,其中一些在我通过 ajax 直接调用它们时工作,但像这样的脚本:

<?php

passthru("python C:/Apache24/htdocs/app1/pyscripts/export_zakup.py GARČIN
2>&1",$retval);
echo $retval;

?>

给我这样的结果: 'python' 不是内部或外部命令,也不是可运行的程序或批处理文件。 1

另外,当我将 python C:/Apache24/htdocs/app1/pyscripts/export_zakup.py GARČIN 复制到我的 cmd 时,它可以正常工作。 我已经花了几个小时试图找出问题所在但没有​​成功。任何人都知道问题出在哪里?

首先,通过从命令行运行 which python 找到 Python 可执行文件所在的位置:

$ which python
$ /usr/bin/python

然后在 PHP 脚本中使用可执行文件的完整路径:

passthru("/usr/bin/python C:/Apache24/htdocs/app1/pyscripts/export_zakup.py GARČIN
2>&1",$retval);
echo $retval;

请记住,Windows 与基于 Linux 的机器上的路径会有所不同。例如,Windows 上的最新版本通常将可执行文件安装在 C:\Python27\ 中,因此完整路径为 C:\Python27\python