如何通过vercel.json缓存requirements.txt中的pip包加速Vercel部署
解决Vercel部署时pip包安装过慢的问题
我在Vercel部署Python项目时,安装requirements.txt里的依赖要花10分钟以上,查了Vercel官方文档没找到pip缓存的相关说明,求可行的缓存方案。
现有配置文件
requirements.txt
Flask==2.3.3 Flask-Admin==1.6.1 Flask-BabelEx==0.9.4 Flask-Cors==4.0.0 Flask-Login==0.6.2 Flask-Mail==0.9.1 Flask-Migrate==4.0.5 Flask-Principal==0.4.0 Flask-RESTful==0.3.10 Flask-Security-Too==5.3.0 Flask-SQLAlchemy==3.1.1 Flask-WTF==1.1.1
vercel.json
{ "rewrites": [ { "source": "/(.*)", "destination": "/api/app" } ] }
解决方案建议
1. 自定义构建脚本+缓存pip目录
这是最直接的缓存方案,利用Vercel的构建缓存机制保存pip下载的包:
- 项目根目录创建
package.json(没有的话新建),添加构建命令:
如果有额外的构建步骤(比如数据库迁移),可以把命令拼接进去,比如{ "scripts": { "vercel-build": "pip install --cache-dir .pip-cache -r requirements.txt" } }pip install ... && flask db upgrade。 - 新建
.vercelignore文件,写入.pip-cache/,避免缓存目录被上传到Vercel。 - 打开Vercel项目的Settings > Build & Development Settings > Build Cache,在
Cache Paths里添加.pip-cache,保存后下次构建就会复用缓存的包。
2. 切换到Poetry/Pipenv管理依赖(可选)
这类工具的锁文件能精准锁定依赖版本,且自带的缓存更容易被Vercel识别:
- 用Poetry的话,生成
pyproject.toml和poetry.lock替代requirements.txt,然后修改vercel-build命令为:poetry install --no-root - 同样在Vercel缓存设置里添加Poetry的缓存目录(默认是
~/.cache/pypoetry),后续构建会自动复用缓存。
3. 临时提速:用国内PyPI镜像
如果是网络延迟导致的慢,可以在pip安装时指定国内镜像源,比如:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --cache-dir .pip-cache -r requirements.txt
这个方法可以配合缓存方案一起用,进一步缩短首次安装时间。
内容的提问来源于stack exchange,提问作者Wils
相关产品推荐
相关产品推荐

