在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.11Vercel会自动切换到该版本的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
相关产品推荐
相关产品推荐

