Python 3.9环境下连接Postgres时psycopg2不可用,有什么替代方案?
psycopg2 不兼容 Python 3.9 的替代方案
首先可以先尝试升级现有 psycopg2 版本:从 psycopg2 2.8.6 版本开始已经正式支持 Python 3.9,无需更换驱动即可解决问题,执行以下命令升级即可:pip install --upgrade psycopg2
如果本地缺少编译环境导致安装失败,可以直接安装官方预编译的二进制版本:pip install psycopg2-binary
如果确实需要更换其他驱动,可选方案如下:
- psycopg(即 psycopg3):psycopg2 的官方下一代迭代版本,原生支持 Python 3.6+ 所有版本,包含 Python 3.9 及更高版本,新增原生异步支持、性能优化等特性,大部分 API 与 psycopg2 兼容,迁移成本极低。安装命令:
pip install "psycopg[binary]" - asyncpg:异步场景首选驱动,纯 Python 实现的异步 PostgreSQL 驱动,性能远高于 psycopg2 的异步封装方案,支持 Python 3.7+,完全兼容 Python 3.9。仅提供异步接口,同步场景不适用。安装命令:
pip install asyncpg - pg8000:纯 Python 实现的驱动,完全符合 DB API 2.0 规范,不依赖任何系统级二进制库,跨平台兼容性极强,对所有主流 Python 版本支持良好,适合不想处理二进制依赖、对性能要求不高的场景。安装命令:
pip install pg8000
如果你的项目使用 SQLAlchemy 等 ORM 框架,只需要修改连接串中的驱动前缀即可快速切换驱动,比如:
- 切换到 psycopg3 前缀为
postgresql+psycopg:// - 切换到 pg8000 前缀为
postgresql+pg8000://
内容的提问来源于stack exchange,提问作者plasmy
相关产品推荐
相关产品推荐

