Importer la bibliothèque psycopg2 non chargée: libssl.1.0.0.dylib

quand j'essaie d'exécuter la commande:

import psycopg2

j'obtiens l'erreur:

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

Jusqu'à présent j'ai essayé brew install openssl et j'ai référencé (sans chance):

psycopg2 d'erreur d'installation de la Bibliothèque - pas chargé: libssl.dylib

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

Psycopg2 image ne se trouve pas

35
demandé sur Community 2014-12-03 08:49:24

10 réponses

au lieu de jouer avec les liens symboliques dans les Drs des bibliothèques système, définissez $DYLD_FALLBACK_LIBRARY_PATH pour inclure les bibliothèques anaconda. par exemple:

export DYLD_FALLBACK_LIBRARY_PATH=$HOME/anaconda/lib/:$DYLD_FALLBACK_LIBRARY_PATH
63
répondu X.L. 2015-06-09 08:34:31

EDIT: potentiellement dangereux, lire les commentaires de la première!

voir la réponse beaucoup plus sûre ci-dessous: https://stackoverflow.com/a/30726895/308315


j'ai rencontré ce numéro une heure après que vous l'ayez posté et que vous l'ayez trouvé. J'utilise Mac OS X Yosemite, Python 2.7, et L'application Postgresql.

Il semble y avoir un lien symbolique non fonctionnel défini par défaut (ou je l'ai introduit en cas de problême), pour le corriger, supprimez d'abord les liens incorrects:

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

puis les relier de nouveau avec (remplacer votre nom D'utilisateur Mac avec votre nom D'utilisateur Mac. J'ai trouvé utile d'utiliser l'onglet pour compléter chaque étape, pour confirmer le répertoire):

$ 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

je crois que les autres solutions n'ont pas fonctionné pour vous parce que votre version est en anaconda.

30
répondu Scott Brenstuhl 2017-05-23 10:31:19

après avoir cogné ma tête contre le mur pendant quelques heures, ces deux solutions sont garanties pour fonctionner:

l'Option 1. cela résout notre problème sans toucher aux variables d'environnement. Exécutez ceci dans votre shell:

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

Boom! Ceci améliore les liens symboliques dans /usr/local pour libssl et libcrypto . Maintenant import psycopg2 fonctionne comme un charme.

Option 2. Si, pour une raison quelconque vous souhaitez conserver les liens symboliques dans usr/local , exécutez cette commande dans votre shell:

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

assurez-vous de remplacer $HOME/anaconda/lib ci-dessus par le chemin de lib réel. Dans mon cas, c'était $HOME/miniconda2/envs/ali/lib .

cela ne fonctionnera que pour la session shell/bash dans laquelle vous êtes actuellement. Pour rendre le changement persistant, ajouter le export déclaration à votre fichier ~/.bash_profile ou ~/.bashrc .

Pensées: OMI #1 est la bonne façon de traiter ce problème, mais j'ai quitté #2 dans le cas où certaines personnes préfèrent travailler avec des variables d'environnement plutôt que de fixer des liens symboliques (si, par exemple, ils ont des logiciels avec une dépendance sur les anciennes versions de fichier openssl).

18
répondu alichaudry 2016-07-28 22:36:37

conda installer psycopg fonctionne pour moi. Il met à jour les paquets suivants Les paquets suivants seront mis à jour:

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
répondu jackyen_2000 2016-03-17 14:26:05

après Homebrew ne me permettrait pas de forcer link openssl l'amende suivante a fonctionné:

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

(cette installation a succédé à une virtualenv sur macOS)

7
répondu NSTJ 2017-02-10 08:07:07

en relation avec la réponse de X. L. ci-dessus, je ne voulais pas utiliser Anaconda alors que j'utilise déjà pip, donc je lui ai juste donné le chemin vers les bibliothèques Postgres qui ont fonctionné pour moi (J'utilise PostgreSQL.application sur Mac OS 10.10)...

export DYLD_FALLBACK_LIBRARY_PATH=/Library/PostgreSQL/9.5/lib:$DYLD_FALLBACK_LIBRARY_PATH
5
répondu Jim Bob 2016-02-13 16:20:50

J'ai dû modifier un peu la réponse de Scott Brennstuhl: 1. Supprimer les liens symboliques brisés:

$ 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. Relier avec postgres' inclus pilotes de périphérique:
$ 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
répondu tyton 2015-10-27 16:21:15

mon goût de configuration était un peu différent de L'OP: j'utilise Postgres.app sur Mac et am dans un virtualenv ; mais les symptômes étaient similaires.

pour moi, cela s'est produit juste après la mise à jour de mon Postgres.app de 9.3 à 9.5 sur mon local, et l'erreur a clairement montré le chemin psycopg2 pour libssl.1.0.0.dylib pointait vers l'ancien emplacement du répertoire de données 9.3 (le image référencé dans cette erreur?). Ajouter des choses bizarres à mon ENV ou supprimer les liens symboliques Je ne suis pas sûr que l'impact de certainement ne se sentait pas bien pour moi. Je l'ai résolu en désinstallant puis en réinstallant psycopg2 de la même façon que j'avais quand il fonctionnait-quelque chose qui ne se sent pas très dangereux du tout:

 # In my virtualenv
 pip uninstall psycopg2
 pip install psycopg2

alors j'étais tout bon!

3
répondu cwnewhouse 2016-08-22 20:39:17

faites ce qui suit pour résoudre la bibliothèque non chargée:libssl.1.0.0.erreur de dylib si vous avez openssl dans/usr/local / répertoire de Cave

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

  2. après avoir fait l'étape 1, si vous obtenez encore Bibliothèque Non chargé: libcrypto.1.0.0.erreur de dylib. Procédez de la manière suivante

        sudo cp/usr/local/Cellar/ openssl /<< version >>/lib / libcrypto.1.0.0.dylib / usr/lib

2
répondu yottabytt 2017-01-11 13:18:51

j'ai essayé pip install psycopg2 qui donnait des problèmes similaires. Puis j'ai essayé conda installer psycopg2, qui a fonctionné! Assurez-vous également que le pip vous utilisez appartient à anaconda (pip)

1
répondu Shoeb Ahmed Mogal 2016-02-12 15:18:52