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

Heroku部署Flask API提示slug体积950.5M超500M上限如何解决

问题根因

Slug体积超限的核心原因是requirements.txt中默认拉取的torch为带全量CUDA依赖的GPU版本,单包体积就超过800M,叠加timm、albumentations、opencv的关联依赖,总大小直接突破500M上限,和buildpack配置、业务代码文件无关。

可直接落地的解决步骤(按优先级操作,做完前两步基本就能达标)
  • 替换PyTorch相关依赖为CPU-only精简版
    不要直接写torch==1.11.0,Heroku构建时默认从PyPI拉取的是GPU全量包,冗余占比极高。将requirements.txt中torch相关行替换为以下内容,直接砍掉70%以上的PyTorch体积:
    --extra-index-url https://download.pytorch.org/whl/cpu
    torch==1.11.0+cpu
    torchvision==0.12.0+cpu
    torchaudio==0.11.0+cpu
    
    注意timm运行依赖torchvision,必须同步替换为CPU版本,否则pip还是会自动拉取全量版torchvision凑依赖。
  • 裁剪非必要的依赖关联
    如果你只用到albumentations的基础图像增强能力,不需要它的全部可选依赖,可以把对应行改成:
    albumentations==1.1.0 --no-deps
    
    手动补它运行必须的基础依赖(PyYAML、qudida)就行,这一步能再砍掉30-60M的冗余包。你当前用的opencv_python_headless是无UI的服务端版本,本身没问题,不要换成带UI的标准版。
  • 新增.slugignore排除构建冗余文件
    你目前只配置了.gitignore忽略__pycache__,但Heroku生成slug时不会自动排除测试文件、文档、缓存、git记录这类运行时完全用不到的内容。在项目根目录新建.slugignore文件,写入以下规则:
    *.pyc
    __pycache__
    tests/
    docs/
    *.md
    .git/
    .github/
    *.ipynb
    examples/
    
  • 加构建后清理脚本删掉依赖内的冗余文件
    官方Python buildpack支持自定义编译后钩子,在项目根目录新建bin/post_compile文件,写入以下清理逻辑,自动删掉依赖包里的测试用例、静态库、示例文件:
    #!/usr/bin/env bash
    set -eo pipefail
    # 清理pip安装缓存
    pip cache purge
    # 删除PyTorch内的测试文件、静态符号库
    TORCH_PATH=$(python -c "import torch, os; print(os.path.dirname(torch.__file__))")
    rm -rf $TORCH_PATH/test
    rm -rf $TORCH_PATH/*.a
    # 删除OpenCV的示例文件
    CV2_PATH=$(python -c "import cv2, os; print(os.path.dirname(cv2.__file__))")
    rm -rf $CV2_PATH/samples
    
    本地执行chmod +x bin/post_compile给脚本加可执行权限后再提交代码。
避坑说明
  • 不要尝试升级torch到1.12以上版本,1.11.0+cpu是适配timm==0.5.4的最精简稳定版,更高版本的CPU包体积会上涨30%以上。
  • 不要浪费时间折腾numpy、pandas、Flask相关依赖的裁剪,这些包加起来总大小不到50M,根本不是体积大头。
  • 不要用网上流传的第三方PyTorch buildpack,绝大多数已经停止维护,反而会引入更多冗余依赖,用官方Python buildpack配合CPU源安装即可。

按以上步骤操作后,最终slug体积会稳定在320M-430M区间,完全符合Heroku的大小限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:48:17