it-swarm.com.de

Import psycopg2 Bibliothek nicht geladen: libssl.1.0.0.dylib

Wenn ich versuche, den Befehl auszuführen:

import psycopg2

Ich erhalte den Fehler:

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

Bisher habe ich versucht brew install openssl und haben verwiesen (ohne Glück):

psycopg2 Installationsfehler - Bibliothek nicht geladen: libssl.dylib

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

Psycopg2 Bild nicht gefunden

38
Gideon

Anstatt mit Symlinks in Systembibliotheksverzeichnissen zu spielen, legen Sie $DYLD_FALLBACK_LIBRARY_PATH, um die Anaconda-Bibliotheken einzuschließen. z.B:

export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH
71
X.L.

BEARBEITEN: potenziell gefährlich, erst Kommentare lesen !

Im Folgenden finden Sie eine viel sicherere Antwort: https://stackoverflow.com/a/30726895/308315


Etwa eine Stunde, nachdem du es gepostet und es herausgefunden hast, bin ich auf genau dieses Problem gestoßen. Ich verwende Mac OS X Yosemite, Python 2.7, und die Postgresql-App.

Es scheint standardmäßig einen nicht funktionierenden Symlink-Satz zu geben (oder ich habe ihn bei der Fehlerbehebung eingeführt). Um ihn zu beheben, entfernen Sie zuerst die falschen Links:

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

Verknüpfen Sie sie anschließend erneut mit (ersetzen Sie IHREN BENUTZERNAMEN durch Ihren Mac-Benutzernamen. Es hat sich als hilfreich erwiesen, die Registerkarte zu verwenden, um jeden Schritt abzuschließen und das Verzeichnis zu bestätigen.):

$ 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

Ich glaube, die anderen Lösungen haben bei dir nicht funktioniert, weil deine Version in Anaconda ist.

30
Scott Brenstuhl

Nachdem ich meinen Kopf für ein paar Stunden gegen die Wand geschlagen habe, funktionieren diese beiden Lösungen garantiert:

Option 1. Dies löst unser Problem, ohne mit Umgebungsvariablen herumzuspielen. Führen Sie dies in Ihrer Shell aus:

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

Boom! Dadurch werden die symbolischen Links in /usr/local Für libssl und libcrypto aktualisiert. Jetzt wirkt import psycopg2 Wie ein Zauber.

Option 2. Wenn Sie aus irgendeinem Grund die aktuellen symbolischen Links in usr/local Beibehalten möchten, führen Sie diesen Befehl in Ihrer Shell aus:

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

Stellen Sie einfach sicher, dass Sie $HOME/anaconda/lib Oben durch den tatsächlichen lib-Pfad ersetzen. In meinem Fall war dies $HOME/miniconda2/envs/ALi/lib.

Dies funktioniert nur für die Shell/Bash-Sitzung, in der Sie sich gerade befinden. Fügen Sie die Anweisung export zu Ihrer Datei ~/.bash_profile Oder ~/.bashrc Hinzu, um die Änderung persistent zu machen.

Thoughts: IMO # 1 ist der richtige Weg, um mit diesem Problem umzugehen, aber ich habe # 2 verlassen, falls einige Leute lieber mit Umgebungsvariablen arbeiten, als symbolische Links zu reparieren (wenn sie zum Beispiel Software haben) mit einer Abhängigkeit von den älteren openssl-Dateiversionen).

20
alichaudry

Nachdem Homebrew mir nicht erlaubt hat, link openssl zu erzwingen, hat das folgende gut funktioniert:

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

(Diese Installation war erfolgreich in einem virtualenv unter macOS)

13
NSTJ

conda install psycopg funktioniert bei mir. Es aktualisiert die folgenden Pakete Die folgenden Pakete werden aktualisiert:

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
12
jackyen_2000

In Bezug auf die obige Antwort von XL wollte ich Anaconda nicht verwenden, wenn ich bereits pip verwende, also habe ich ihm nur den Pfad zu den Postgres-Bibliotheken gegeben, die für mich funktionierten (ich verwende PostgreSQL.app auf Mac OS 10.10) ...

export DYLD_FALLBACK_LIBRARY_PATH=/Library/PostgreSQL/9.5/lib:$DYLD_FALLBACK_LIBRARY_PATH
5
Jim Bob

Ich musste die Antwort von Scott Brennstuhl ein wenig variieren: 1. Defekte Symlinks entfernen:

$ 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 mit den mitgelieferten Treibern von 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
4
tyton

Mein Setup war ein wenig anders als das OP: Ich verwende Postgres.app Auf einem Mac und bin innerhalb eines virtualenv; aber die Symptome waren ähnlich.

Für mich geschah dies direkt nach der Aktualisierung meines Postgres.app Von 9.3 auf 9.5 in meinem lokalen Verzeichnis, und der Fehler zeigte deutlich, dass der psycopg2 - Pfad für libssl.1.0.0.dylib Auf die alten 9.3-Daten zeigte Verzeichnisposition (das image, auf das in diesem Fehler verwiesen wird?). Hinzufügen von seltsamen Dingen zu meinem ENV oder Entfernen von Symlinks Ich bin mir nicht sicher, ob die Auswirkung von definitiv nicht richtig für mich war. Ich habe es gelöst, indem ich psycopg2 Auf die gleiche Weise deinstalliert und dann erneut installiert habe, wie ich es bei der Arbeit getan habe - etwas, das sich überhaupt nicht sehr gefährlich anfühlt:

 # In my virtualenv
 pip uninstall psycopg2
 pip install psycopg2

Dann war ich ganz gut!

3
cwnewhouse

Führen Sie die folgenden Schritte aus, um die nicht geladene Bibliothek zu beheben: libssl.1.0.0.dylib error wenn Sie openssl im Verzeichnis/usr/local/Cellar haben

  1. Sudo cp /usr/local/Cellar/openssl/<<version>>/lib/libssl.1.0.0.dylib/usr/lib

  2. Wenn die Bibliothek nach Schritt 1 immer noch nicht geladen ist, wird der Fehler libcrypto.1.0.0.dylib angezeigt. Mach Folgendes
    Sudo cp /usr/local/Cellar/openssl/<<version>>/lib/libcrypto.1.0.0.dylib/usr/lib

2
yottabytt

Ich habe versucht, pip psycopg2 zu installieren, was ähnliche Probleme verursachte. Dann habe ich versucht, conda psycopg2 zu installieren, was funktioniert hat! Stellen Sie außerdem sicher, dass der von Ihnen verwendete Pip zu Anaconda gehört (welcher Pip).

1

Ich hatte dieses Problem auf einem Mac, als ich ln -s ausprobierte, bekam ich ln: /usr/lib/libssl.1.0.0.dylib: Operation nicht erlaubt Ich wollte mich nicht mit meinem System anlegen. Stattdessen hat es für mich funktioniert, einfach psycopg2-binary zu installieren: pip install psycopg2-binary

Dies installierte psycopg2-binary-2.8. Version

0
ajouhari

Ich benutze Mac OS Sierra: und habe folgenden Fehler erhalten:

 Library not loaded: libssl.1.1.dylib

Ich fand diese Bibliothek in

 /Library/PostgreSQL/11/lib

Ich habe diese Lösung im Internet gefunden:

 export DYLD_LIBRARY_PATH=/Library/PostgreSQL/11/lib

Dies ist jedoch keine dauerhafte Lösung. Da ich den obigen Befehl immer ausführen muss, wenn ich meinen Server neu starte.

0
Surajkumar_cse

Nachdem ich mehr als einen Tag lang versucht hatte, kam ich zu der folgenden Lösung.

  • neuinstallation von brew [email protected]
  • deaktiviere csrutil -> google es wie man es deaktiviert, damit wir etwas kopieren können
    nach/usr/lib
  • kopieren Sie libssl.1.0.0.dylib nach/usr/lib. Ich habe Sudo cp /usr/local/Cellar/openssl/1.0.2s/lib/libssl.1.0.0.dylib/usr/lib
  • kopieren Sie libcrypto.1.0.0.dylib nach/usr/lib. Ich habe Sudo cp /usr/local/Cellar/openssl/1.0.2s/lib/libcrypto.1.0.0.dylib/usr/lib

Wenn Sie ein Problem mit der Bibliothek haben, die nicht geladen ist: libssl.1.0.0.dylib ändern Sie einfach die Version von 1.0 auf 1.1 von openssl und kopieren Sie libssl. 1.1 statt libssl.1.0 und libcrypto.1.1 statt libcrypto.1.0.0

Fertig, Sie können psycopg2 auf dem Mac genießen.

0
pyAddict