Недавно возникла эта проблема при попытке импортировать psycopg2 (2.8.2) в проект python3 (3.5.3).Запуск macOS Sierra (10.12.6) с использованием PostgreSQL 9.6 + pgAdmin3.
TLDR: будьте осторожны при установке программ SQL и динамических ссылок, создаваемых установщиками
Из того, что я могу сказать, необходимая динамическая библиотека libpq (libpq.5.dylib
), совместимая с psycopg2 (2.8.2), - это libpq 5.9+ (libpq.5.9.dylib
)
Когда postgres (или другие postgres)программы), они могут создавать динамические ссылки в /usr/lib
на вновь установленные файлы .dylib, которые могут необязательно быть теми, которые вам нужны.
Например, /usr/lib/libpq.5.dylib
может указывать на ./Applications/pgAdmin3.app/Contents/Frameworks/libpq.5.dylib
, то есть версию 5.6;старая версия динамической библиотеки libpq может не включать некоторые функции, такие как _PQsslAttribute
, в этом случае.
Решение, которое сработало для меня:
Move *На 1027 * вверх в $PATH
(поскольку usr/lib
может быть доступен для записи только пользователю root), затем создайте динамическую ссылку в /usr/local/lib
, чтобы указывать на /Library/PostgreSQL/9.6/lib/libpq.5.9.dylib
следующим образом:
cd /usr/local/lib
ln -s /Library/PostgreSQL/9.6/lib/libpq.5.9.dylib ./libpq.5.dylib