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

如何将自制Python模块(*.tar.gz)上传至Heroku?推送失败求助

解决Heroku部署时无法识别自制*.tar.gz模块的问题

我之前部署Python应用到Heroku时也踩过类似的坑,本地能用的自制模块一上传就报错,给你几个亲测有效的解决思路:

1. 先确认自制模块的打包格式是否符合Python标准

Heroku是通过pip来安装依赖的,你的.tar.gz包必须是标准的Python可安装包,也就是包里必须包含setup.py(传统方式)或者pyproject.toml(现代PEP 621标准)文件。本地能加载可能是你直接把模块放到了Python的搜索路径里,但Heroku不会自动识别没有安装配置的包。

你可以先在本地验证打包是否正常:

pip install ./你的模块路径/your-module.tar.gz

如果本地pip能成功安装,说明打包没问题;如果报错,先修复setup.py或pyproject.toml的配置,确保里面正确定义了包名、版本、依赖等信息。

2. 在requirements.txt中正确引用本地包

Heroku构建时会读取requirements.txt来安装所有依赖,你需要在这里添加一行指向你的.tar.gz文件:

./path/to/your-module.tar.gz

注意路径是相对于项目根目录的,比如如果你的包放在项目根目录的custom_modules文件夹里,就写./custom_modules/your-module.tar.gz。

3. 确保.tar.gz文件被Git追踪

别忘了把这个自制包加入Git仓库,否则Heroku根本找不到它!执行以下命令:

git add your-module.tar.gz
git commit -m "Add custom module package"
git push heroku master

如果之前已经add过,直接commit再push就行。

4. 备选方案:直接用模块目录代替压缩包

如果压缩包的方式还是有问题,可以试试把.tar.gz解压,把整个模块目录(比如your_module/)放到项目根目录下,然后在requirements.txt里添加:

-e ./your_module

-e表示 editable模式,方便后续修改模块代码,同时Heroku也能正确识别并安装这个模块。记得同样要把模块目录加入Git:

git add your_module/
git commit -m "Add custom module directory"
git push heroku master

5. 查看Heroku构建日志定位具体问题

如果还是push失败,一定要看详细报错!执行:

heroku logs --tail

日志里会告诉你具体是哪里出问题了——比如是找不到包文件、setup.py配置错误,还是模块缺少系统依赖。根据日志信息针对性修复会高效很多。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:29:42