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

在Vercel部署含scikit-learn的Flask应用时遇pip安装异常

解决Vercel部署时pip3.12安装依赖失败的问题
  • 指定兼容的依赖版本
    最新版的Flask、matplotlib等库可能还没完全适配Python 3.12,导致安装失败。给每个包加上经过验证的兼容版本号,修改后的requirements.txt示例:

    Flask==2.3.3
    matplotlib==3.8.2
    numpy==1.26.3
    pandas==2.1.4
    scikit-learn==1.3.2
    

    先在本地Python 3.12环境执行pip install -r requirements.txt,确认能正常安装再重新部署。

  • 补充系统级依赖
    matplotlib、scikit-learn这类库需要编译工具和系统依赖,Vercel默认环境可能缺失。在根目录创建vercel-build.sh脚本:

    #!/bin/bash
    apt-get update && apt-get install -y gcc gfortran python3-dev libopenblas-dev liblapack-dev
    pip install -r requirements.txt
    

    然后修改vercel.json的构建配置,指定使用该脚本执行构建:

    {
      "builds": [
        {
          "src": "wsgi.py",
          "use": "@vercel/python",
          "config": { "buildCommand": "./vercel-build.sh" }
        }
      ],
      "routes": [
        { "src": "/(.*)", "dest": "wsgi.py" }
      ]
    }
    
  • 切换Python版本
    如果硬要适配Python 3.12行不通,直接降级到兼容性更好的Python 3.11。在根目录创建runtime.txt,内容为:

    python-3.11
    

    Vercel会自动切换到该版本的Python环境执行依赖安装。

  • 调整依赖安装顺序
    部分库需要numpy等基础库提前安装,否则会触发编译错误。把numpy、scipy这类基础库放在requirements.txt最前面:

    numpy==1.26.3
    scipy==1.11.4
    Flask==2.3.3
    matplotlib==3.8.2
    pandas==2.1.4
    scikit-learn==1.3.2
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 01:39:59