Python Flask应用部署Heroku时pandas构建wheel失败如何解决?
你使用的 pandas 1.1.2 确实存在兼容性问题:该版本于2020年发布,官方仅支持 Python 3.6 ~ 3.8 版本。你之前能部署成功是因为当时 Heroku 的默认 Python 运行时版本处于该范围内,有对应预编译的 wheel 包可以直接安装;现在 Heroku 默认 Python 版本已升级到 3.9 及以上,没有对应老版本 pandas 的预编译包,需要从源码构建,而老版本 pandas 的构建逻辑不符合新版 pip 的 PEP 517 规范,就会触发你看到的报错。
可行解决方案
- 方案一:锁定 Heroku 的 Python 运行时版本
在项目根目录新建runtime.txt文件,写入内容python-3.8.10,该版本是 pandas 1.1.2 官方适配的最高 Python 版本,无需修改现有依赖配置,重新执行git push heroku master即可完成部署。 - 方案二:升级 pandas 到兼容版本
将 requirements.txt 中 pandas 的版本替换为pandas==1.3.5或更高的稳定版,1.3.5 及以上版本已适配 Python 3.9+,且有对应 Heroku 环境的预编译安装包,无需源码构建即可正常安装,适合代码未依赖 pandas 1.1.2 专属废弃特性的场景。 - 方案三:强制禁用 PEP 517 构建规则
若不想修改 Python 版本也不想升级 pandas,可以将 requirements.txt 中 pandas 的行修改为pandas==1.1.2 --no-use-pep517,强制 pip 使用旧的构建逻辑安装 pandas,绕过 PEP 517 校验报错。
内容的提问来源于stack exchange,提问作者Erich Purpur
相关产品推荐
相关产品推荐

