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

Vercel部署Node.js后端调用Python脚本遇spawn python ENOENT错误求助

解决Vercel部署Node.js调用Python脚本的ENOENT错误

错误根源

spawn python ENOENT的本质是Vercel Serverless环境里找不到python命令,核心原因:

  • Vercel默认Node.js运行时中,Python的命令是python3而非python
  • 部分场景下环境未预装Python,或未正确安装脚本依赖

解决步骤

1. 修正Python命令路径

直接修改Node.js代码里的pythonPath配置,把"python"换成"python3":

let options = {
  mode: "text",
  pythonPath: "python3", // 替换原有的"python"
  pythonOptions: ["-u"],
  scriptPath: path.dirname(scriptPath),
};

2. 处理Python脚本依赖

如果你的main.py用到了第三方库(比如requests、pandas),在项目根目录创建requirements.txt,把依赖列进去:

# 示例,根据你的实际依赖修改
requests==2.31.0
numpy==1.26.0

Vercel部署时会自动读取这个文件安装Python依赖。

3. 配置Vercel运行时

如果前两步没解决,在项目根目录新建vercel.json,强制部署时安装Python依赖:

{
  "functions": {
    "api/**/*.js": {
      "runtime": "@vercel/node@20",
      "installCommand": "npm install && pip3 install -r requirements.txt"
    }
  }
}

这个配置会在安装Node依赖的同时,安装Python所需的包。

4. 终极方案:转写为Node.js逻辑

如果跨语言调用的环境问题始终存在,建议把Python脚本的逻辑直接用Node.js重写,彻底避免环境依赖,这也是Vercel环境下最稳定的做法。

验证

修改后重新部署到Vercel,测试接口是否正常返回数据。如果还有问题,查看Vercel的部署日志,确认Python3是否存在、依赖是否安装成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 04:09:53