如何在Python3中调用PHP函数?执行遇FileNotFoundError求助
解决Python调用PHP脚本时的FileNotFoundError问题
这个错误提示FileNotFoundError: [Errno 2] No such file or directory: 'php'本质很清晰——你的系统要么没安装PHP,要么PHP的可执行文件没在系统的PATH环境变量里,导致Python的subprocess模块找不到它。下面是一步步的解决办法:
1. 检查PHP是否已安装
先打开终端(或命令提示符),输入以下命令验证PHP是否存在:
php -v
- 如果输出PHP的版本信息(比如
PHP 7.4.33之类的),说明已经安装,直接跳去步骤2; - 如果提示
command not found,那就先安装PHP:- Ubuntu/Debian系:执行
sudo apt update && sudo apt install php-cli - CentOS/RHEL系:执行
sudo yum install php-cli - Windows:下载对应版本的PHP二进制包,解压后记住
php.exe的路径(比如C:\php\php.exe)
- Ubuntu/Debian系:执行
2. 确保PHP路径可被Python找到
如果已经安装了PHP但还是报错,大概率是PHP的可执行文件不在系统PATH里。你可以:
方法一:用PHP的绝对路径调用
先找到PHP的绝对路径:
- Linux/macOS:终端执行
which php,会输出类似/usr/bin/php的路径 - Windows:就是你刚才解压后
php.exe的完整路径
然后修改Python代码,把"php"替换成这个绝对路径:
import subprocess # 示例:Linux下的绝对路径 subprocess.call(["/usr/bin/php", "./php1.php"]) script_response = subprocess.check_output(["/usr/bin/php", "./php1.php"])
方法二:把PHP路径添加到系统PATH
- Linux/macOS:编辑
~/.bashrc或~/.zshrc,添加一行export PATH=$PATH:/path/to/php/directory,然后执行source ~/.bashrc生效 - Windows:右键“此电脑”→属性→高级系统设置→环境变量,在系统变量的
Path里添加PHP所在的目录,然后重启终端
3. 额外检查:确保php1.php文件路径正确
还要确认你的Python脚本运行时的当前目录和php1.php在同一个位置,或者直接用绝对路径指定php1.php,比如:
subprocess.call(["/usr/bin/php", "/home/yourname/scripts/php1.php"])
小提示:调用PHP特定函数
如果你的目标是调用php1.php里的某个特定函数,直接运行整个文件可能不会执行函数。你可以在PHP脚本里处理命令行参数,比如:php1.php内容:
<?php function greet($name) { return "Hello, " . $name . "!"; } // 检查是否传入了参数 if (isset($argv[1])) { echo greet($argv[1]); } ?>
然后Python代码里传参数调用:
import subprocess response = subprocess.check_output(["/usr/bin/php", "./php1.php", "John"]) # 解码字节流为字符串 print(response.decode("utf-8"))
内容的提问来源于stack exchange,提问作者john
相关产品推荐
相关产品推荐

