Импорт библиотеки 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 не найдено
Ответы
Ответ 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
- 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.