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 и это решило проблему. Теперь все в порядке. Просто попробуйте.