Не удается установить пакет psycopg2 через установку pip... Это из-за Сьерры?
Я работаю над проектом для одной из моих лекций, и мне нужно загрузить пакет psycopg2, чтобы работать с используемой базой данных postgresql. К сожалению, когда я пытаюсь установить psycopg2, появляется следующее сообщение:
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
Кто-нибудь знает, почему это происходит? Это потому, что Sierra не поддерживает некоторые пакеты? Спасибо заранее!
Ответы
Ответ 1
Я исправил это, установив средства командной строки
xcode-select --install
затем установив openssl через Homebrew и вручную привязав мой openbl с открытым исходным кодом к pip:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
на macOS Sierra 10.12.1
Ответ 2
Попробуйте установить его с помощью:
pip install psycopg2-binary
Ответ 3
-
Установить/обновить инструменты разработчика Xcode
xcode-select --install
-
Запрос postgres path
find / -name pg_config 2>/dev/null
-
Установите psycopg2, используйте путь, который вы получили в шаге 2. Mine был '/usr/local/Cellar/postgresql/9.5.0/bin/pg_config'
PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/ pip install psycopg2
Ответ 4
Это работает для меня (на терминале):
find / -name pg_config 2>/dev/null
затем добавьте путь:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin/
os версия: MacOs Sierra
Надеюсь, это поможет.
Ответ 5
Похоже, что пакет openssl не установлен. Попробуйте снова установить его и pip install
. Я не пользователь macos, но я считаю, что brew
упрощает управление пакетами на этой платформе.
Вам также может потребоваться установить пакеты разработки Python и postgresql.
Ответ 6
Старый, но для людей, использующих pipenv, я решил эту проблему, посмотрев на мой граф зависимостей pipenv graph --reverse
и заметив, что требуется psycopg2-binary==2.8.2
. Запуск pipenv install psycopg2-binary
решил проблему.
Ответ 7
brew install postgresql
Если postgresql существует, запустите:
brew upgrade postgresql
sudo pip install psycopg2
В венве:
env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib
-L/usr/local/opt/readline/lib' pip install psycopg2==2.8.3
Ответ 8
Если вы столкнулись с подобной проблемой, используя pipenv, установите psycopg2:
ld: библиотека не найдена для -lssl ',' clang: error: команда компоновщика ошибка с кодом выхода 1 (используйте -v для просмотра вызова) ', "ошибка: Сбой команды 'clang' с состоянием выхода 1", '
----------------------------------------",
Я перепробовал все рекомендации, приведенные выше, и ни одна из них не сработала. Я столкнулся с этой проблемой в другом virtualenv несколько месяцев назад и вспомнил, что читал кое-что о том, что это проблема версии psycopg2. Поэтому я попытался установить с 2.7.1 и 2.8.3, и оба по-прежнему не удалось. Каким-то образом версия 2.7.7 сработала:
pipenv install psycopg2==2.7.7
Жаль, что у меня не было времени изучить это дальше, чтобы понять, что на самом деле происходит. Но сейчас я не, и это сработало.