Postgres 突然引发错误“/usr/lib/libpq.5.dylib”(没有这样的文件)

问题描述 投票:0回答:4

当我运行 Django 项目或任何与 Postgres 相关的代码时:

Referenced from: '/Users/mahmoudnasser/.local/share/virtualenvs/wyspp_backend-PwdII1PB/lib/python3.8/site-packages/psycopg2/_psycopg.cpython-38-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)

我在网上尝试了很多解决方案,但没有一个有效。

注意:我使用MacOS

python django postgresql macos
4个回答
26
投票

我在使用 homwbrew 升级 Postgres 后刚刚遇到这个问题。 所以我尝试在我的 venv 中重新安装 psycopg2,这就解决了问题。 现在可以了。尝试一下:

pip install --upgrade --force-reinstall psycopg2

19
投票

要解决此问题,只需运行以下命令:

sudo mkdir -p /usr/local/lib && sudo ln -s /opt/homebrew/opt/postgresql@14/lib/postgresql@14/libpq.5.dylib /usr/local/lib/libpq.5.dylib

2
投票

brew
PostgreSQL 升级后,类似的事情也发生在我身上。我的问题的解决方案是删除我的虚拟环境(就我而言)
.venv
,然后重新运行:

python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt

之后,我就可以毫无问题地开始我的申请了。

我认为问题是过时的依赖图造成的。使用 pip 重新安装依赖项,找到新版本的 Postgres 并正确链接

libpq.5.dylib

注意,我使用了以下

psycopg2
依赖项:

psycopg2-binary==2.9.3

无论如何,我也在

MacOS Monterey
上,这只是发生在同一台机器上的第二个代码库中。

确切的错误是:

ImportError: dlopen(/Users/username/dev/src/project/.venv/lib/python3.10/site-packages/psycopg2/_psycopg.cpython-310-darwin.so, 0x0002): Library not loaded: '/opt/homebrew/opt/postgresql/lib/libpq.5.dylib'
Referenced from: '/Users/username/dev/src/project/.venv/lib/python3.10/site-packages/psycopg2/_psycopg.cpython-310-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), '/opt/homebrew/Cellar/postgresql@14/14.5_4/lib/libpq.5.dylib' (no such file), '/usr/local/lib/libpq.5.dylib' (no such file), '/usr/lib/libpq.5.dylib' (no such file)

0
投票

尝试下一个 shell: 可以很好地工作。

pip install psycopg2-binary
© www.soinside.com 2019 - 2024. All rights reserved.