web-dev-qa-db-fra.com

Impossible d'installer le package psycopg2 via l'installation de pip ... Est-ce à cause de Sierra?

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!

39
Jome

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

164
zganger

Essayez de l'installer avec:

pip install psycopg2-binary
15
Dheeraj Pande
  1. Installer/mettre à jour les outils de développement Xcode

    xcode-select --install
    
  2. Requête chemin d'accès postgres

    find / -name pg_config  2>/dev/null
    
  3. 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
    
5
einmuya

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.

1
Lex Bryan

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é.

0
Paul Meinshausen

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.

0
Mavrick Laakso

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.

0
mhawke
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
0
Ion Gorincioi