pip版本兼容问题:自定义包无法在Heroku及repl.it正常安装
解决Heroku上pip版本过低导致自定义包安装失败的问题
我来帮你搞定这个pip版本的坑!Heroku的Python buildpack默认确实会用比较旧的pip版本,这很容易导致依赖新打包特性的包(比如你用的zoho_crm)安装失败,结合你在repl.it复现的情况,给你几个靠谱的解决办法:
1. 在requirements.txt里指定pip版本
这是最直接的方式,在项目根目录的requirements.txt开头添加一行,强制要求使用足够新的pip版本:
pip>=21.0.0 zoho_crm==0.5
选21.0.0及以上版本就够了,这个版本对wheel构建、现代打包规范的支持都很完善,能解决大部分旧pip带来的安装问题。
2. 通过Heroku环境变量升级pip
要是不想改requirements.txt,也可以直接给Heroku设置环境变量,让构建时自动升级pip:
在本地终端运行这条命令:
heroku config:set PIP_VERSION=21.0.0
设置完成后重新部署,Heroku就会先安装指定版本的pip,再处理你的包依赖。
3. 在repl.it里验证问题根源
从你贴的repl.it日志来看,它卡在了构建zoho_crm的wheel环节,你可以手动在repl.it的shell里升级pip再试,确认是不是版本问题:
pip install --upgrade pip pip install zoho_crm
如果升级后能正常安装,那回到Heroku用上面两种方法肯定能解决。
额外小提示
- 顺便检查下
zoho_crm的打包配置(比如setup.py或pyproject.toml),确保符合现代Python打包规范,旧pip对不规范的包兼容性更差。 - 要是你的包是私有包,记得在Heroku配置好仓库访问权限,但看日志里是从PyPI下载的,这个应该不用操心。
内容的提问来源于stack exchange,提问作者Zach
相关产品推荐
相关产品推荐

