Ich arbeite an einem Projekt für eine meiner Vorlesungen und muss das Paket psycopg2 herunterladen, um mit der verwendeten postgresql-Datenbank arbeiten zu können. Leider wird beim Versuch, psycopg2 per Pip zu installieren, der folgende Fehler angezeigt:
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
Weiß jemand, warum das passiert? Liegt es daran, dass Sierra einige Pakete nicht unterstützt hat? Danke im Voraus!
Versuchen Sie es mit:
quelle
psycopg2
?pip install -U pip
erhalten Sie Fehler wievcvarsall.bat not found
Wenn postgresql vorhanden ist, führen Sie Folgendes aus:
In venv:
env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib' pip install psycopg2==2.8.4
Wenn Sie nur den Befehl verwenden müssen,
pip install psycopg2
exportieren Sie den Pfad in macOSX:export LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib"
quelle
Wenn Sie mit pipenv auf ein ähnliches Problem stoßen, installieren Sie psycopg2:
Ich habe alle oben genannten Empfehlungen ausprobiert und keine davon hat funktioniert. Ich hatte dieses Problem vor einigen Monaten in einer anderen virtuellen Umgebung gesehen und mich daran erinnert, etwas darüber gelesen zu haben, dass es sich um ein Problem mit der Psycopg2-Version handelt . Also habe ich versucht, mit 2.7.1 und 2.8.3 zu installieren, und beide sind immer noch fehlgeschlagen. Irgendwie hat Version 2.7.7 funktioniert:
pipenv install psycopg2==2.7.7
Ich wünschte, ich hätte Zeit, dies weiter zu untersuchen, um zu verstehen, was wirklich passiert. Aber im Moment tue ich das nicht und das hat funktioniert.
quelle
Ich habe es behoben mit:
quelle
pyenv
meine Python-Umgebungen und -Installationen verwalte. Ihre Lösung hat von mir aus funktioniert, aber ich habe ausgeführt:$ python -m pip install psycopg2
Statt wie andere verwendet haben$ pip install psycopg2
, wissen wir möglicherweise nicht, welchen Interpreter wir verwenden und installieren. Dadurch wird sichergestellt, dass pip mit meinem Standard-Python-Interpreter, der für mich Version 3.8.2 ist, verwendet und installiert wird.Installieren / aktualisieren Sie die Xcode-Entwicklertools
Postgres-Pfad abfragen
find / -name pg_config 2>/dev/null
Installieren Sie psycopg2 und verwenden Sie den Pfad, den Sie in Schritt 2 erhalten haben . Meins war '/usr/local/Cellar/postgresql/9.5.0/bin/pg_config'
PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/ pip install psycopg2
quelle
Das funktioniert bei mir (auf einem Terminal):
find / -name pg_config 2>/dev/null
Fügen Sie dann den Pfad hinzu:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin/
Betriebssystemversion: MacOs Sierra
Ich hoffe das hilft.
quelle
Es sieht so aus, als ob das openssl-Paket nicht installiert ist. Versuchen Sie es
pip install
erneut zu installieren . Ich bin kein MacOS-Benutzer, aber ich glaube, dass diesbrew
die Paketverwaltung auf dieser Plattform vereinfacht.Möglicherweise müssen Sie auch die Python-Entwicklungs- und Postgresql-Entwicklungspakete installieren.
quelle
Alt, aber für Leute, die pipenv verwenden, habe ich dieses Problem behoben, indem ich mir mein Abhängigkeitsdiagramm angesehen
pipenv graph --reverse
und festgestellt habe, dass es erforderlich istpsycopg2-binary==2.8.2
. Durch Ausführen wurdepipenv install psycopg2-binary
das Problem behoben.quelle
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" \ brew upgrade openssl
Dann könnte ich installieren
psycopg2
quelle
versuchen Sie dies -> pip installieren Sie psycopg2-binary
quelle
Für den Fall, dass Sie nicht herumspielen möchten, finden Sie
brew
hier die "Nur-MacOS-Lösung":sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Danach
pip
wird gernepsycopg2
von der Quelle installiert . Funktioniert mit "Mojave" (macOS 10.14).quelle
Gemäß der aktuellen / todey-Bedingung - die einzige Lösung hierfür ist - deinstallieren Sie Python 3.8 oder 3.9 oder so weiter und installieren Sie ptyhon 3.7.4
quelle