Ubuntu 22.04(Python 3.10)环境下pip安装psycopg2-binary失败问题咨询
解决Ubuntu 22.04 + Python 3.10安装psycopg2-binary==2.8.5时的pg_config缺失问题
这个报错的核心原因很明确:你安装的psycopg2-binary==2.8.5版本比较旧,没有适配Python 3.10和Ubuntu 22.04的预编译二进制包,所以pip自动 fallback 到从源码构建,而源码构建必须依赖PostgreSQL的开发工具pg_config,你的系统刚好没装这个依赖。
下面是两种快速解决的方法:
方法一:安装系统依赖后重新构建
先安装源码构建需要的PostgreSQL开发库和Python开发头文件:
sudo apt update && sudo apt install libpq-dev python3-dev
安装完成后,重新执行你的安装命令(加上--user适配之前的用户安装模式):
pip3 install psycopg2-binary==2.8.5 --user
方法二:安装适配性更好的新版本psycopg2-binary
如果你对版本没有严格要求,推荐安装最新版的psycopg2-binary,它已经适配了Python 3.10和Ubuntu 22.04,不需要源码构建:
pip3 install psycopg2-binary --user
额外提示(可选)
如果你已经在系统中安装了PostgreSQL服务器,pg_config其实已经存在于/usr/lib/postgresql/<你的PostgreSQL版本>/bin/目录下(比如Ubuntu 22.04默认是14版本,路径就是/usr/lib/postgresql/14/bin/)。你可以手动把这个路径添加到环境变量,再执行安装:
export PATH=$PATH:/usr/lib/postgresql/14/bin/ pip3 install psycopg2-binary==2.8.5 --user
不过这种方法不如直接安装依赖包省心,因为依赖包会自动配置好所有路径。
内容的提问来源于stack exchange,提问作者Erik
相关产品推荐
相关产品推荐

