pip安装requirements.txt时报错No matching distribution found for psycopg2
psycopg2安装异常问题解决方案
问题根因
- psycopg2 2.9.1版本最高仅支持Python 3.9,你的当前虚拟环境基于Python 3.10构建,因此直接执行
pip install psycopg2==2.9.1会提示找不到匹配的发行版 - 执行
python3.9 -m pip install psycopg2时调用的是全局Python 3.9对应的pip,包会被安装到全局Python 3.9的库目录,和你激活的Python 3.10虚拟环境完全隔离,因此虚拟环境内执行pip list无法查询到该包
解决方案
方案一:升级psycopg2版本(推荐,无需更换Python版本)
psycopg2从2.9.2版本开始支持Python 3.10,你可以直接修改requirements.txt文件中的对应依赖条目:
# 将原有的psycopg2==2.9.1替换为 psycopg2>=2.9.2,<3.0.0
如果是Windows环境下编译报错,可以换成预编译版本,依赖条目改为:
psycopg2-binary>=2.9.2,<3.0.0
修改完成后激活虚拟环境,重新执行pip install -r requirements.txt即可完成安装。
方案二:更换虚拟环境Python版本(适用于必须使用psycopg2==2.9.1的场景)
如果项目必须固定使用psycopg2 2.9.1版本,你需要将虚拟环境的Python版本降级为3.9:
- 删除当前基于Python 3.10创建的虚拟环境
- 调用Python 3.9解释器重新创建虚拟环境
- 激活新的虚拟环境后执行
pip install -r requirements.txt即可正常安装
注意:安装依赖时尽量使用虚拟环境激活状态下的python -m pip命令执行安装,避免调用全局pip导致包安装路径错误
内容的提问来源于stack exchange,提问作者Srete23
相关产品推荐
相关产品推荐

