Je travaille sur un projet pour une de mes conférences et je dois télécharger le package psycopg2 afin de travailler avec la base de données postgresql en cours d'utilisation. Malheureusement, lorsque j'essaie d'installer pip psycopg2, l'erreur suivante apparaît:
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
Est-ce que quelqu'un sait pourquoi cela se produit? Est-ce parce que Sierra n'a pas pris en charge certains packages? Merci d'avance!
J'ai résolu ce problème en installant les outils de ligne de commande
xcode-select --install
puis en installant openssl via Homebrew et en liant manuellement mon openssl installé par homebrew à pip:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
sur macOS Sierra 10.12.1
Essayez de l'installer avec:
pip install psycopg2-binary
Installer/mettre à jour les outils de développement Xcode
xcode-select --install
Requête chemin d'accès postgres
find / -name pg_config 2>/dev/null
Installez psycopg2, utilisez le chemin d'accès que vous avez obtenu étape 2. Le mien était '/usr/local/Cellar/postgresql/9.5.0/bin/pg_config'
PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/ pip install psycopg2
Cela fonctionne pour moi (sur un terminal):
find / -name pg_config 2>/dev/null
puis ajoutez le chemin:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin/
version du système d'exploitation: MacOs Sierra
J'espère que ça aide.
Rencontrer un problème similaire en utilisant pipenv install psycopg2:
ld: bibliothèque introuvable pour -lssl ',' clang: erreur: la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation) ', "erreur: la commande' clang 'a échoué avec l'état de sortie 1",'
---------------------------------------- ',
J'ai essayé toutes les recommandations ci-dessus et aucune n'a fonctionné. J'avais rencontré ce problème dans un autre virtualenv il y a quelques mois et je me souvenais avoir lu quelque chose à ce sujet étant un problème de version psycopg2 . J'ai donc essayé d'installer avec 2.7.1 et 2.8.3 et les deux ont toujours échoué. D'une manière ou d'une autre, la version 2.7.7 fonctionnait:
pipenv install psycopg2==2.7.7
J'aimerais avoir le temps d'approfondir la question pour comprendre ce qui se passe réellement. Mais pour l'instant je ne le fais pas et cela a fonctionné.
Ancien, mais pour les personnes utilisant pipenv, j'ai résolu ce problème en consultant mon graphique de dépendance pipenv graph --reverse
et en le remarquant requis psycopg2-binary==2.8.2
. Fonctionnement pipenv install psycopg2-binary
a résolu le problème.
Il semble que le package openssl ne soit pas installé. Essayez de l'installer et pip install
encore. Je ne suis pas un utilisateur macos, mais je pense que brew
simplifie la gestion des packages sur cette plate-forme.
Vous devrez peut-être également installer les packages de développement Python et postgresql development.
brew install postgresql
Si postgresql existe, exécutez:
brew upgrade postgresql
Sudo pip install psycopg2
En venv:
env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib
-L/usr/local/opt/readline/lib' pip install psycopg2==2.8.3