Windows10使用WAMP运行PHP调用shell_exec执行python脚本报错如何解决
解决方案
核心原因是你当前登录用户配置的Python环境变量,默认未被WAMP的Apache服务读取到,按以下优先级尝试解决即可:
- 方案1(最稳妥,无需修改服务配置):直接使用Python的绝对路径调用
- 打开系统cmd,执行
where python,复制输出的Python可执行文件完整路径,常见路径示例:C:\Users\你的用户名\AppData\Local\Programs\Python\Python311\python.exe - 将PHP代码中的
python替换为你查到的完整路径,注意Windows路径的斜杠可以换成正斜杠,路径含空格的话需要用双引号包裹,修改后代码示例:
<?php echo shell_exec('"C:/Users/你的用户名/AppData/Local/Programs/Python/Python311/python.exe" C:/wamp64/www/registration/test.py 2>&1'); ?> - 打开系统cmd,执行
- 方案2:重启WAMP加载新环境变量
如果你是刚配置完Python的Path变量,完全退出WAMP程序,右键点击WAMP图标选择「以管理员身份运行」,之后重启所有服务再测试即可。 - 方案3:修改Apache服务运行账户(适用于需要用
python相对路径调用的场景)- 按下Win+R输入
services.msc打开服务管理器,找到WAMP对应的apache服务(名称一般为wampapache64) - 右键该服务选择「属性」-「登录」选项卡,勾选「此账户」,填入你当前登录Windows的用户名和密码,保存设置
- 重启Apache服务后即可正常读取当前用户的Path环境变量
- 按下Win+R输入
验证小技巧
你可以临时执行以下PHP代码,查看Apache服务当前能读取到的Path变量值,确认是否包含Python安装目录:
<?php echo shell_exec('echo %PATH% 2>&1'); ?>
内容的提问来源于stack exchange,提问作者Githmi Kalupahana
相关产品推荐
相关产品推荐

