加载psycopg2模块时出错:未加载库:libpq.5.dylib



我正在尝试使用Postgres数据库运行Django项目。我使用通过postgressapp安装的Postgres13.4(目前支持的所有版本都是UNIVERSAL)和python 3.9(在venv中)。我用苹果M1芯片macOS Big Sur在Mac上工作。

我面临以下众所周知的问题:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: dlopen(/Users/mymac/PyCharmProjects/projectname/venv/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so, 2): Library not loaded: /opt/homebrew/opt/postgresql/lib/libpq.5.dylib
  Referenced from: /Users/mymac/PyCharmProjects/projectname/venv/lib/python3.9/site-packages/psycopg2/_psycopg.cpython-39-darwin.so
  Reason: image not found

通过搜索,我发现了一些类似的讨论:https://github.com/psycopg/psycopg2/issues/1216。似乎最相关的解决方案是";RyanDurk在1月27日评论道:

$ brew install libpq --build-from-source
$ export LDFLAGS="-L/opt/homebrew/opt/libpq/lib"
$ pip install psycopg2

不幸的是,对我来说,这没有帮助。

然后,我在这里找到了一些建议:未加载库:/usr/local/lib/libpq.5.4dylib,并尝试了它们。特别是,我试图通过类似的符号链接访问libpq.5.dylib:ln -s  /Library/PostgreSQL/13/lib/libpq.5.dylib /opt/homebrew/opt/postgresql/lib/libpq.5.dylib(主题启动器标记为已接受的解决方案),但也没有成功。

我试着从postgresql.org安装postgres,然后用自制软件卸载/重新安装postgress,然后是

gem uninstall pg -> bundle install

结果相同。

我以前也成功地运行过同样的项目,在mac上使用英特尔芯片和PyCharm社区版。同样的项目也在Linux上正常运行。

如果你知道发生了什么以及如何解决这个问题,请帮助我。如有必要,我会提供更多细节。

brew决定将我的postgresql包升级到版本14后,我也出现了同样的错误(您的版本可能会有所不同)。

错误信息有以下部分:

Library not loaded: '/usr/local/opt/postgresql/lib/libpq.5.dylib'
...
Reason: tried: '/usr/local/opt/postgresql/lib/libpq.5.dylib' (no such file)

我基本上找到了libpq的新位置,并将其符号链接到psycopg2正在寻找它的位置:

ln -s /usr/local/lib/postgresql@14/libpq.5.14.dylib /usr/local/opt/postgresql/lib/libpq.5.dylib

希望这能帮助其他有类似问题的人。

今天早上我遇到了同样的错误。我的解决方案与公认的有点不同:

我卸载并重新安装了psycopg2。

pip uninstall psycopg2

pip install -r requirements.txt

这里没有版本更改,但我想构建过程确定了正确的路径。

最新更新