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

Heroku部署Python应用时psycopg2构建wheel包失败如何解决?

问题根因

该错误由低版本psycopg2/psycopg2-binary与Python 3.9及以上版本不兼容导致:Python 3.9之后不再对外公开内部结构体PyInterpreterState的成员,旧版psycopg2的源码直接引用了该结构体成员,因此编译时GCC抛出类型不完整的报错,最终部署流程终止。

可执行的解决办法
  • 方案1:升级psycopg2依赖版本(最推荐)
    修改项目根目录下的requirements.txt文件,将原有psycopg2/psycopg2-binary的版本约束调整为2.9.1及以上,示例写法:
psycopg2-binary>=2.9.1

高版本psycopg2已经官方修复了对Python 3.9+的兼容性问题,无需调整其他配置,修改后提交代码重新推送即可。

  • 方案2:指定Heroku使用低版本Python(临时过渡方案)
    如果你的项目暂时无法适配高版本psycopg2,可以在项目根目录新建runtime.txt文件,手动指定Heroku使用兼容旧版psycopg2的Python版本,示例写法:
python-3.8.17

注意Heroku会定期下线老旧的Python运行时版本,该方案仅适合临时救急,不建议长期使用。

  • 方案3:替换为新一代psycopg3依赖
    如果你的项目正在做功能迭代,也可以直接替换为psycopg的新一代版本psycopg3,在requirements.txt中写入如下依赖即可:
psycopg[binary]>=3.0.0

psycopg3性能更优,对高版本Python的兼容性也更稳定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:48:04