Postgres внезапно выдает ошибку '/usr/lib/libpq.5.dylib' (нет такого файла)

когда я запускаю проект 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

Чтобы решить эту проблему, просто выполните следующую команду:

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

Нечто подобное произошло со мной после обновления PostgreSQL brew. Решением моей проблемы было удаление виртуальной среды, в моем случае .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)

Я только что столкнулся с этой проблемой после обновления Postgres с помощью homwbrew. Поэтому я попробовал переустановить psycopg2 в моем venv и это решило проблему. Теперь все в порядке. Просто попробуйте.

Вернуться на верх