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
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
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.
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).
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
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)
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
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
- 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
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!
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
sudo cp /usr/local/Cellar/openssl/<< version >> > lib/libssl.1.0.0.dylib / usr / lib
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
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)