Vercel部署Django项目遇Serverless Function体积超限问题求助
解决Vercel部署Django时Serverless函数大小超限问题
可行解决方案
Vercel Serverless函数的50MB体积限制,即便精简requirements.txt仍超标,大概率是依赖包冗余、构建缓存或项目冗余文件导致,试试以下方案:
1. 清理依赖包冗余文件
多数Python包会附带文档、测试用例、示例代码等无用文件,可通过pip参数减少安装体积,或用pip-tools精准控制依赖:
- 构建时执行:
pip install --no-cache-dir --no-binary :all: -r requirements.txt - 用
pip-sync替代直接安装,确保仅安装requirements.txt内的依赖,无多余子依赖。
2. 配置Vercel依赖优化
在项目根目录的vercel.json中添加函数优化配置,让Vercel自动清理依赖冗余:
{ "functions": { "StockChart/wsgi.py": { "runtime": "@vercel/python@3.10", "optimize": true } } }
3. 拆分大依赖到外部逻辑
如果项目依赖pandas、numpy这类体积较大的库,可将数据处理逻辑迁移到Vercel Edge Functions(体积限制更宽松),或改用外部API处理数据,Django仅负责页面渲染与API调用,降低主函数的依赖体积。
4. 排除项目冗余文件
创建或更新.vercelignore,排除日志、数据集、缓存文件等不必要的内容,避免被打包进函数:
# .vercelignore *.log *.csv __pycache__/ *.pyc build/ dist/
5. 用PyInstaller预编译精简包
将Django项目与依赖打包为单可执行文件,大幅压缩体积:
- 安装PyInstaller:
pip install pyinstaller - 打包WSGI入口:
pyinstaller --onefile StockChart/wsgi.py - 在
vercel.json中指定打包后的可执行文件作为函数入口。
内容的提问来源于stack exchange,提问作者Tushar Rusia
相关产品推荐
相关产品推荐

