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

Brew升级后无法使用Python连接PostgreSQL数据库求助

解决brew升级PostgreSQL后psycopg2的库文件找不到问题

问题背景

通过brew完成PostgreSQL升级后,使用Python的psycopg2包连接数据库时出现导入错误:

ImportError: dlopen(/Users/fabioteichmann/.pyenv/versions/3.9.4/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so, 0x0002): Library not loaded: /opt/homebrew/opt/postgresql/lib/libpq.5.dylib
  Referenced from: /Users/fabioteichmann/.pyenv/versions/3.9.4/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so
  Reason: tried: '/opt/homebrew/opt/postgresql/lib/libpq.5.dylib' (no such file), '/usr/local/lib/libpq.5.dylib' (no such file), '/usr/lib/libpq.5.dylib' (no such file)

已确认PostgreSQL库文件实际路径为:

/opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib

其他工具可正常连接数据库,仅psycopg2出现问题。

解决方案

方法一:创建软链接匹配期望路径

直接在psycopg2查找的路径下创建指向实际库文件的软链接:

sudo ln -s /opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib /opt/homebrew/opt/postgresql/lib/libpq.5.dylib

执行后动态链接器就能在期望路径找到对应的库文件,无需修改psycopg2或环境配置。

方法二:重新编译psycopg2适配新库路径

让psycopg2重新链接到当前PostgreSQL版本的库:

  1. 激活目标pyenv环境:
pyenv activate 3.9.4
  1. 卸载现有psycopg2相关包:
pip uninstall -y psycopg2 psycopg2-binary
  1. 加载postgresql@14的环境变量:
eval "$(brew shellenv postgresql@14)"
  1. 重新安装psycopg2(推荐使用psycopg2-binary避免编译依赖):
pip install psycopg2-binary

方法三:通过环境变量指定库路径

临时生效:在运行Python脚本前执行以下命令,告诉动态链接器优先查找目标库路径:

export DYLD_LIBRARY_PATH="/opt/homebrew/opt/postgresql@14/lib/postgresql@14:$DYLD_LIBRARY_PATH"

永久生效:将上述命令添加到你的shell配置文件(如~/.zshrc或~/.bashrc),保存后执行source ~/.zshrc(对应你的配置文件)使设置生效。

内容的提问来源于stack exchange,提问作者Fabio T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:25:18