Подтвердить что ты не робот

Импорт библиотеки psycopg2 не загружен: libssl.1.0.0.dylib

Когда я пытаюсь запустить команду:

import psycopg2

Я получаю ошибку:

ImportError: dlopen(/Users/gwulfs/anaconda/lib/python2.7/site-packages/psycopg2/_psycopg.so, 2): Library not loaded: libssl.1.0.0.dylib
  Referenced from: /Users/gwulfs/anaconda/lib/python2.7/site-packages/psycopg2/_psycopg.so
  Reason: image not found

До сих пор я пробовал brew install openssl и ссылался (без удачи):

Ошибка установки psycopg2 - библиотека не загружена: libssl.dylib

http://joshuakehn.com/2013/10/13/Postgresapp-and-psycopg2-on-OS-X.html

Изображение Psycopg2 не найдено

4b9b3361

Ответ 1

Вместо того, чтобы играть с символическими ссылками в системных библиотеках, установите $DYLD_FALLBACK_LIBRARY_PATH, чтобы включить библиотеки anaconda. например:

export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH

Ответ 2

РЕДАКТИРОВАТЬ: потенциально опасно, сначала прочитайте комментарии!

См. гораздо более безопасный ответ ниже: fooobar.com/questions/161127/...


Я столкнулся с этой точной проблемой примерно через час после того, как вы разместили ее и просто поняли. Я использую Mac OS X Yosemite, Python 2.7 и приложение Postgresql.

Кажется, что по умолчанию установлен нерабочий набор символов (или я ввел его во время устранения неполадок), чтобы исправить его, сначала удалите неверные ссылки:

$ sudo rm /usr/lib/libssl.1.0.0.dylib
$ sudo rm /usr/lib/libcrypto.1.0.0.dylib

Затем переустановите их (замените YOURUSERNAME своим именем пользователя Mac. Мне было полезно использовать вкладку, чтобы выполнить каждый шаг, чтобы подтвердить каталог):

$ sudo ln -s /Users/YOURUSERNAME/anaconda/lib/libssl.1.0.0.dylib /usr/lib
$ sudo ln -s /Users/YOURUSERNAME/anaconda/lib/libcrypto.1.0.0.dylib /usr/lib

Я считаю, что другие решения не сработали для вас, потому что ваша версия находится в анаконде.

Ответ 3

После того, как вы наткнули голову на стену на пару часов, эти два решения гарантированно работают:

Вариант 1.. Это позволяет решить нашу проблему без использования переменных среды. Запустите это в своей оболочке:

brew install --upgrade openssl
brew unlink openssl && brew link openssl --force

Boom! Это улучшает символические ссылки в /usr/local для libssl и libcrypto. Теперь import psycopg2 работает как шарм.

Вариант 2. Если по какой-либо причине вы хотите сохранить текущие символические ссылки в usr/local, запустите эту команду в своей оболочке:

export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH

Просто замените $HOME/anaconda/lib выше на фактический путь к lib. В моем случае это было $HOME/miniconda2/envs/ali/lib.

Это будет работать только для сеанса оболочки / bash, в котором вы сейчас находитесь. Чтобы сделать изменение постоянным, добавьте оператор export в ваш файл ~/.bash_profile или ~/.bashrc.

Мысли: IMO # 1 - это правильный способ справиться с этой проблемой, но я оставил # 2, если некоторые люди предпочитают работать с переменными окружения, а не фиксировать символические ссылки (если, например, у них есть программное обеспечение, зависящее от старых версий файлов openssl).

Ответ 4

После того, как Homebrew не позволит мне принудительно установить ссылку openssl, все работает нормально:

pip install --global-option=build_ext \
            --global-option="-I/usr/local/opt/openssl/include" \
            --global-option="-L/usr/local/opt/openssl/lib" psycopg2

(эта установка прошла успешно в virtualenv на macOS)

Ответ 5

conda install psycopg работает для меня. Он обновляет следующие пакеты Следующие пакеты будут обновлены:

conda:      3.19.1-py27_0 --> 4.0.5-py27_0
openssl:    1.0.2f-0      --> 1.0.2g-0
pip:        8.0.2-py27_0  --> 8.1.0-py27_0
setuptools: 19.6.2-py27_0 --> 20.2.2-py27_0
wheel:      0.26.0-py27_1 --> 0.29.0-py27_0

Ответ 6

В отношении X.L. ответ выше, я не хотел использовать Anaconda, когда я уже использую pip, поэтому я просто дал ему путь к библиотекам Postgres, которые работали для меня (я использую PostgreSQL.app в Mac OS 10.10)...

export DYLD_FALLBACK_LIBRARY_PATH=/Library/PostgreSQL/9.5/lib:$DYLD_FALLBACK_LIBRARY_PATH

Ответ 7

Мне пришлось немного изменить Скотта Бреннштуля: 1. Удалите сломанные символические ссылки:

$ sudo rm /usr/lib/libssl.1.0.0.dylib
$ sudo rm /usr/lib/libcrypto.1.0.0.dylib
$ sudo rm /usr/lib/libpq.5.dylib
  1. Relink с включенными драйверами postgres:
$ sudo ln -s   /Applications/Postgres.app/Contents/Versions/9.4/lib/libssl.1.0.0.dylib /usr/lib    
$ sudo ln -s /Applications/Postgres.app/Contents/Versions/9.4/lib/libcrypto.1.0.0.dylib /usr/lib
$ sudo ln -s /Applications/Postgres.app/Contents/Versions/9.4/lib/libpq.5.dylib  /usr/lib

Ответ 8

Мой вкус настройки немного отличался от OP: я использую Postgres.app на Mac и в пределах virtualenv; но симптомы были похожи.

Для меня это произошло сразу после обновления моего Postgres.app с 9.3 до 9.5 на моем локальном уровне, и ошибка явно показала, что путь psycopg2 для libssl.1.0.0.dylib указывал на старое расположение каталога данных 9.3 (image ссылка на эту ошибку?). Добавление странных вещей в мой ENV или удаление символических ссылок. Я не уверен, что влияние определенно не понравилось мне. Я решил это, удалив, а затем повторно установив psycopg2 так же, как и при работе, - что-то, что не очень опасно:

 # In my virtualenv
 pip uninstall psycopg2
 pip install psycopg2

Тогда мне все было хорошо!

Ответ 9

Выполните следующие действия для устранения не загруженной библиотеки: libssl.1.0.0.dylib error , если у вас есть openssl в каталоге /usr/local/Cellar

  • sudo cp/usr/local/Cellar/openssl/<<version → /lib/libssl.1.0.0.dylib/usr/lib

  • После выполнения шага 1, если вы все еще не загрузите библиотеку: libcrypto.1.0.0.dylib. Сделайте следующее
        sudo cp/usr/local/Cellar/openssl/<<version → /lib/libcrypto.1.0.0.dylib/usr/lib

Ответ 10

Я попробовал pip install psycopg2, который давал похожие проблемы. Затем я попробовал установить конфигурацию psycopg2, которая сработала! Также убедитесь, что пип, который вы используете, принадлежит анаконде (который пип)

Ответ 11

У меня возникла эта проблема на Mac, и попытка ln -s выдала мне ln: /usr/lib/libssl.1.0.0.dylib: Операция не разрешена. Я не хотел связываться с моей системой. Вместо этого у меня сработало просто установить psycopg2-binary: pip install psycopg2-binary

Это установленная версия psycopg2-binary-2.8.3

Ответ 12

После более чем одного дня попыток я пришел к следующему решению.

  • заварить переустановить [email protected]
  • отключить csrutil → Google это, как отключить его, чтобы мы могли что-то скопировать
    в /usr/lib
  • скопируйте libssl.1.0.0.dylib в /usr/lib я did- sudo cp/usr/local/Cellar/openssl/1.0.2s/lib/libssl.1.0.0.dylib/usr/lib
  • скопируйте libcrypto.1.0.0.dylib в /usr/lib я did- sudo cp/usr/local/Cellar/openssl/1.0.2s/lib/libcrypto.1.0.0.dylib/usr/lib

Точно так же, если вы столкнулись с проблемой для библиотеки не загруженной: libssl.1.0.0.dylib просто измените версию openssl с 1.0 на 1.1 и скопируйте libssl.1.1 вместо libssl.1.0 и libcrypto.1.1 вместо libcrypto.1.0.0

Готово, все готово, чтобы насладиться psycopg2 в Mac.

Ответ 13

Я использую Mac OS Sierra: и получил эту ошибку:

 Library not loaded: libssl.1.1.dylib

Я нашел эту библиотеку в

 /Library/PostgreSQL/11/lib

Я нашел это решение в интернете:

 export DYLD_LIBRARY_PATH=/Library/PostgreSQL/11/lib

Но это не постоянное решение. Поскольку я должен выполнить вышеупомянутую команду всякий раз, когда я перезагружаю свой сервер.

Ответ 14

Решение, которое работало для меня (fooobar.com/info/161127/... нет), устанавливало psycopg2-binary с: pip install psycopg2-binary==2.7.6

Это на MacOS Mohave.