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

Laravel控制器运行Python脚本报错及依赖问题求助

解决Laravel中Symfony Process调用Python脚本的两个问题

看起来你碰到了两个典型的Python环境配置问题,咱们一步步来解决:

一、解决python命令找不到的问题(Exit Code 127)

报错里的sh: 1: python: not found说明你的服务器系统里没有把python命令映射到Python解释器——现在大多数Linux发行版默认只安装Python3,并且只有python3命令可用。

你有两个解决方向:

  • 直接改用python3命令(最稳妥,不会影响系统其他程序):
    把控制器里的代码改成:
    $process = new Process('python3 '.public_path('MyPython.py'));
    
    你已经试过这个能运行简单脚本,所以这个是最快的临时解决办法。
  • 给python创建软链接到python3(让python命令可用):
    登录服务器,运行以下命令(需要sudo权限):
    sudo ln -s /usr/bin/python3 /usr/bin/python
    
    这样系统里的python命令就会指向Python3了。注意:如果你的服务器上还有依赖Python2的老程序,这个操作可能会影响它们,所以谨慎使用。

二、解决requests模块找不到的问题(ModuleNotFoundError)

这个错误是因为你运行脚本的Python3环境里没有安装requests库。这里要注意:服务器上可能有多个Python环境,你得确保安装库的环境和运行脚本的是同一个。

步骤1:确认运行脚本的Python3路径

先在Laravel控制器里加一段代码,查清楚你调用的python3到底是哪个路径:

$process = new Process('which python3');
$process->run();
Log::info($process->getOutput());

运行后看日志,会得到类似/usr/bin/python3的路径。

步骤2:用对应路径的pip安装requests

根据上面得到的路径,运行服务器命令安装requests:

# 替换成你查到的python3路径
sudo /usr/bin/python3 -m pip install requests

这样安装的requests就会被你调用的Python3环境识别到。

额外注意:修复Python脚本里的拼写错误

你的Python脚本里有个低级错误,会导致即使装了requests还是报错:

# 错误写法:request.get(url)
response = requests.get(URL); # 要改成requests(复数),并且变量是大写的URL

把这个错误修正,脚本才能正常发送请求。


内容的提问来源于stack exchange,提问作者Toti Cuervo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:12:45