web-dev-qa-db-fra.com

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

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

import psycopg2

Je reçois 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 ont référencé (sans succès):

erreur d'installation psycopg2 - Bibliothèque non chargée: libssl.dylib

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

image Psycopg2 introuvable

38
Gideon

Au lieu de jouer avec des liens symboliques dans les répertoires de la bibliothèque système, définissez le $DYLD_FALLBACK_LIBRARY_PATH pour inclure les bibliothèques anaconda. par exemple:

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

EDIT: potentiellement dangereux, lisez d'abord les commentaires !

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


Je suis tombé sur ce problème exact environ une heure après l'avoir posté et juste résolu. J'utilise Mac OS X Yosemite, Python 2.7 et l'application Postgresql.

Il semble y avoir un lien symbolique qui ne fonctionne pas par défaut (ou je l'ai introduit lors du dépannage), 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 reconnectez-les avec (remplacez YOURUSERNAME par votre nom d'utilisateur Mac. J'ai trouvé utile d'utiliser tab pour terminer 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 pense que les autres solutions n'ont pas fonctionné pour vous car votre version est en anaconda.

30
Scott Brenstuhl

Après m'être cogné la tête contre le mur pendant quelques heures, ces deux solutions sont garanties de fonctionner:

Option 1. Cela résout notre problème sans déconner avec les variables d'environnement. Exécutez ceci dans votre Shell:

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

Boom! Cela met à niveau les liens symboliques dans /usr/local pour libssl et libcrypto. À présent import psycopg2 fonctionne comme un charme.

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

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

Assurez-vous simplement de remplacer $HOME/anaconda/lib ci-dessus avec le chemin d'accès à la lib. Dans mon cas, c'était $HOME/miniconda2/envs/ALi/lib.

Cela ne fonctionnera que pour la session Shell/bash dans laquelle vous vous trouvez actuellement. Pour rendre la modification persistante, ajoutez l'instruction export à votre ~/.bash_profile ou ~/.bashrc fichier.

Réflexions: IMO # 1 est la bonne façon de résoudre ce problème, mais j'ai laissé # 2 au 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 un logiciel avec une dépendance sur les anciennes versions du fichier openssl).

20
alichaudry

Après que Homebrew ne m'ait pas permis de forcer le lien openssl, ce qui a bien 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 réussi un virtualenv sur macOS)

13
NSTJ

conda install psycopg fonctionne pour moi. Il met à jour les packages suivants Les packages 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
jackyen_2000

En ce qui concerne la réponse de XL ci-dessus, je ne voulais pas utiliser Anaconda quand j'utilise déjà pip, alors je lui ai juste donné le chemin vers les bibliothèques Postgres qui fonctionnaient pour moi (j'utilise PostgreSQL.app sur Mac OS 10.10) ...

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

J'ai dû varier 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 les pilotes inclus de 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

Ma saveur de configuration était un peu différente de l'OP: j'utilise Postgres.app sur Mac et je suis 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 montrait clairement le psycopg2 chemin 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 étranges à mon ENV ou supprimer des liens symboliques, je ne suis pas sûr que l'impact de ne me soit pas vraiment senti. Je l'ai résolu en désinstallant puis en réinstallant psycopg2 de la même manière que lorsque je travaillais - quelque chose qui ne me semble pas très dangereux du tout:

 # In my virtualenv
 pip uninstall psycopg2
 pip install psycopg2

Alors j'étais tout bon!

3
cwnewhouse

Procédez comme suit pour résoudre la bibliothèque non chargée: erreur libssl.1.0.0.dylib si vous avez openssl dans le répertoire/usr/local/Cellar

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

  2. Après avoir effectué l'étape 1, si la bibliothèque n'est toujours pas chargée: erreur libcrypto.1.0.0.dylib. Procédez comme suit
    Sudo cp /usr/local/Cellar/openssl/<<version>>/lib/libcrypto.1.0.0.dylib/usr/lib

2
yottabytt

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

1
Shoeb Ahmed Mogal

J'avais ce problème sur Mac, essayer ln -s me donnait ln: /usr/lib/libssl.1.0.0.dylib: Opération non autorisée Je ne voulais pas jouer avec mon système. Au lieu de cela, ce qui a fonctionné pour moi, c'est d'installer simplement psycopg2-binary: pip install psycopg2-binary

Cette version installée psycopg2-binary-2.8.

0
ajouhari

J'utilise Mac OS Sierra: et j'ai eu cette erreur:

 Library not loaded: libssl.1.1.dylib

J'ai trouvé cette bibliothèque dans

 /Library/PostgreSQL/11/lib

J'ai trouvé cette solution sur internet:

 export DYLD_LIBRARY_PATH=/Library/PostgreSQL/11/lib

Mais ce n'est pas une solution permanente. Comme je dois exécuter la commande ci-dessus chaque fois que je redémarre mon serveur.

0
Surajkumar_cse

Après avoir essayé pendant plus d'une journée, je suis arrivé à la solution ci-dessous.

  • réinstallation de brew [email protected]
  • désactiver csrutil -> google comment le désactiver, afin que nous puissions copier quelque chose
    à/usr/lib
  • copier libssl.1.0.0.dylib dans/usr/lib que j'ai fait - Sudo cp /usr/local/Cellar/openssl/1.0.2s/lib/libssl.1.0.0.dylib/usr/lib
  • copier libcrypto.1.0.0.dylib dans/usr/lib que j'ai fait - Sudo cp /usr/local/Cellar/openssl/1.0.2s/lib/libcrypto.1.0.0.dylib/usr/lib

De même, si vous rencontrez un problème pour Bibliothèque non chargée: libssl.1.0.0.dylib changez simplement la version de 1.0 à 1.1 de openssl et copiez libssl.1.1 à la place libssl.1.0 et libcrypto.1.1 à la place libcrypto .1.0.0

Terminé, vous êtes prêt à profiter de psycopg2 sur mac.

0
pyAddict