You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用Python代码无法执行问题排查求助

PHP调用Python脚本无法执行问题排查与解决建议

环境说明

  • 编辑器:Visual Studio Code
  • 服务器:XAMPP Apache
  • 目标:通过PHP调用Python脚本并在网页显示执行输出,当前无法正常执行Python代码

相关代码

HTML运行按钮

<form action="" method="post">
    <div class="card-header py-3 mb-30 mt-20 pb-20 pt-20">
        <div class="center">
            <input type="submit" name="runpython" value="Run" class="btn btn-primary">
        </div>
    </div>
</form>

PHP调用代码

<?php 
if(isset($_POST['runpython'])){
   $output = shell_exec('python3 /xampp/htdocs/Klasifikasi_KNN/admin test.py');
   echo $output;
   echo shell_exec('/xampp/htdocs/Klasifikasi_KNN/admin test.py');
   $output = shell_exec('python3 /xampp/htdocs/Klasifikasi_KNN/admin test.py');
   echo $output;
   echo shell_exec('xampp/htdocs/Klasifikasi_KNN/admin test.py');
   echo shell_exec('/xampp/htdocs/Klasifikasi_KNN/admin test.py');
   echo shell_exec('/xampp/htdocs/Klasifikasi_KNN/admin/test.py');
   echo shell_exec('xampp/htdocs/Klasifikasi_KNN/admin/test.py');
   echo shell_exec('python3 xampp/htdocs/Klasifikasi_KNN/admin/test.py');
   echo shell_exec('python3 /xampp/htdocs/Klasifikasi_KNN/admin/test.py');
}
?>

test.py脚本

#! C:/Users/Jessen PC/AppData/Local/Microsoft/WindowsApps/python.exe
print("Hello World")

已尝试操作

  • 验证shell_exec和exec函数均已启用,且exec功能正常(执行echo TEST返回预期结果)
  • 在XAMPP的httpd.conf中添加Python脚本处理配置:
    AddHandler cgi-script .py
    ScriptInterpreterSource Registry-Strict
    
  • 使用D盘绝对路径调用Python脚本,结果为打开文件而非执行代码

解决建议

  1. 使用完整Python解释器路径调用
    Windows环境下python3通常不是有效命令,直接指定Python解释器的绝对路径,路径含空格时用双引号包裹:
$output = shell_exec('"C:/Users/Jessen PC/AppData/Local/Microsoft/WindowsApps/python.exe" "D:/xampp/htdocs/Klasifikasi_KNN/admin/test.py"');
echo $output;
  1. 修复Python脚本的shebang行
    shebang行格式错误(多了空格),修正为:
#!C:/Users/Jessen PC/AppData/Local/Microsoft/WindowsApps/python.exe
print("Hello World")

注:Windows下shebang作用有限,核心还是靠PHP指定解释器路径。

  1. 检查文件权限
    确保Apache运行用户(Windows下通常为SYSTEM或当前登录用户)对Python脚本文件、Python解释器拥有读取和执行权限。右键脚本文件,在「安全」选项卡添加对应用户的权限。

  2. 捕获错误输出
    shell_exec默认只捕获标准输出,重定向错误输出到标准输出,便于排查问题:

$output = shell_exec('"C:/Users/Jessen PC/AppData/Local/Microsoft/WindowsApps/python.exe" "D:/xampp/htdocs/Klasifikasi_KNN/admin/test.py" 2>&1');
echo $output;

通过输出可查看路径错误、权限不足等具体报错。

  1. 避免直接执行脚本文件
    不要直接调用.py文件(系统默认用编辑器打开),必须通过Python解释器执行脚本,这是之前用D盘路径仅打开文件的核心原因。

内容的提问来源于stack exchange,提问作者Jessen Jie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:55:15