J'essayais d'installer postgres pour un tutoriel, mais pip
me donne une erreur:
pip install psycopg
Un extrait d'erreur que je reçois:
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
Où est pg_config
mon virtualenv? Comment le configurer? J'utilise virtualenv parce que je ne veux pas d'une installation de postgres à l'échelle du système.
Réponses:
Sur Mac, si vous utilisez Postgres.app , le fichier pg_config se trouve dans votre
/Applications/Postgres.app/Contents/Versions/<current_version>/bin
répertoire. Cela devra être ajouté à votre chemin système pour corriger cette erreur, comme ceci:export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/<current_version>/bin
Ainsi, par exemple, si la version actuelle de Postgres.app est 9.5, cette ligne d'exportation serait:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin
Avec les versions plus récentes de Postgres.app (> 9.5?), Vous pouvez simplement ajouter "latest" à la place du numéro de version, comme ceci:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
la source
9.4
.bash_profile
si vous utilisez bash de Terminal standard. Si vous utilisez,zsh
ajoutez cette ligne au.zshrc
fichier. Tout cela, vous trouverez dans votre répertoire personnel. (justels -la
)<current_version>
parlatest
quels points la dernière version installée de Postgres. Le dossier de la mine ressemble à:ls /Applications/Postgres.app/Contents/Versions/
et ça donne9.5/ latest/
Sur Mac, la solution est d'installer
postgresql
:brew install postgresql
Sur CentOS, la solution est d'installer
postgresql-devel
:sudo yum install postgresql-devel
pg_config
est dans lepostgresql-devel
paquetla source
Je suis totalement d'accord avec John Hight pour dire que la plupart des réponses publiées sont totalement hors-sujet en supposant que l'OP a exactement besoin d'utiliser virtualenv .
Pour moi, la réponse était d'exécuter la commande suivante dans l'invite tout en activant virtualenv:
export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
(notez que la partie 9.4 représente la version et peut varier)
ou si vous souhaitez utiliser la dernière version installée de Postgres:
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
puis:
pip install psycopg2
va avec succès en supposant que vous avez installé postgres. Et sinon, rappelez-vous que la meilleure solution recommandée est d'utiliser: Postgres.app
la source
export PATH="/Applications/Postgres.app/Contents/Versions/latest/bin:$PATH"
si vous souhaitez utiliser la dernière version installée de PostgresN'oubliez pas que votre variable $ PATH dans l'environnement virtuel! = Votre variable globale $ PATH. Vous pouvez le confirmer avec 'echo $ PATH' dans votre virtualenv et aussi dans un nouveau shell. Donc, à moins que vous ne souhaitiez installer PostgreSQL en tant qu'instance unique dans votre environnement virtuel (ce n'est pas une chose à faire, imo), vous devrez modifier la variable $ PATH dans virtualenv pour inclure le chemin de votre installation globale (ce qui résolvez votre erreur pg_config manquante).
Voici les étapes:
1.) Dans un nouveau shell, tapez 'which pg_config'. Cela renverra le chemin. Copiez-le. Dans mon cas, le chemin ressemblait à ceci: /Applications/Postgres.app/Contents/Versions/9.3/bin
2.) De retour dans votre shell virtualenv, tapez 'export PATH = / votre-chemin-vers-pg_config: $ PATH'
3.) Ensuite, toujours dans virtualenv, 'pip install psycopg2'
Si tout se passe comme prévu, cela installera psycopg2 dans l'environnement virtuel, mais l'installation se référera à votre installation Global PostgreSQL. Dans mon cas, cette installation globale a été installée via Postgres.App, d'où le chemin. Je préfère cette méthode de travail avec psycopg2 car cela signifie que je peux utiliser la base de données facilement dans n'importe quel virtualenv plutôt que seulement dans l'environnement virtuel défini.
J'espère que cela aidera tous ceux qui arrivent ici. Pour le jus de Google, voici le langage d'erreur explicite (et vague) renvoyé lorsque vous rencontrez ce problème: La
commande python setup.py egg_info a échoué avec le code d'erreur 1
la source
Voici comment j'ai pu résoudre ce problème sur mon Mac (OSX 10.9):
brew update brew install --force ossp-uuid brew install postgresql pip install psycopg
J'ai eu une erreur CLANG lorsque j'ai essayé
pip install psycopg
(un problème LLVM 5.1 ), j'ai donc dû installer psycopg avec cette commande à la place:ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install psycopg
C'est similaire à la solution de Mingyu , mais il y a suffisamment de différences que je pensais que cela valait la peine d'être partagé.
la source
Cette erreur se produit lorsque les outils de génération ne parviennent pas à trouver les bibliothèques PostgreSQL.
Il est souvent nécessaire d'indiquer à psycopg2 comment trouver le binaire pg_config, vous pouvez:
ajoutez le chemin vers pg_config dans le chemin de votre shell (/ usr / local / pgsql / bin /)
ou éditez le fichier setup.cfg dans le dossier source psycopg2 et indiquez le chemin complet vers pg_config sur la ligne commençant par pg_config =
locate pg_config
pour savoir où il réside, ou simplement taperwhich pg_config
et il devrait vous indiquer le chemin.Moins souvent, l'erreur vient de ne pas avoir installé postgresql sur votre système. Si c'est le cas, téléchargez et compilez postgres, ou téléchargez un binaire psycopg2 pré-construit pour OS X.
la source
Pour
OS X El Capitan (10.11.6)
+brew
+virtualenv
+PostgreSQL 9.5
:Après l'installation
PostgreSQL 9.5
:brew install postgresql@9.5
Ensuite, ouvrez votre terminal et exécutez:
export PATH=$PATH:/usr/local/opt/postgresql\@9.5/bin/ pip install psycopg2
la source
vous devez configurer le chemin postgresql:
export PATH=$PATH:/Library/PostgreSQL/11/bin
après, vous devez installer les exigences:
pip3 install -r requirements
la source
virtualenv est pour les packages python. Je ne pense pas que vous puissiez contenir des postgres dans un virtualenv. Le message d'erreur que vous voyez est probablement dû au fait que vous n'avez pas encore installé postgres. Le script d'installation psycopg2 recherche les fichiers postgres (dans ce cas pg_config) et ne les trouve pas car il n'est pas installé. postgres ne peut pas être installé en utilisant pip ou virtualenv.
la source
Sur Windows, j'ai installé postgres manuellement depuis http://www.enterprisedb.com/products-services-training/pgdownload#windows . Après cela, la même commande fonctionne.
la source
En plus des réponses fournies par @bkev et @andi, selon la documentation sur Postgres.app, vous devez ajouter ce qui suit à votre bash_profile sur Mac:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
Notez qu'il n'y a pas de numéro de version codé en dur. Je voulais ajouter ceci en commentaire aux réponses ci-dessus, mais je n'ai pas assez de représentants pour cela.
la source
Si vous utilisez postgresql 9.4, le fichier se trouve dans
Le nom du package est
postgresql94-9.4.9-1PGDG.rhel6.x86_64
pour ajouter pg_config à votre PATH, procédez comme suit
PATH=$PATH:/usr/pgsql-9.4/bin/
la source
Si vous ne devez pas utiliser
psycopg
spécifiquement le pilote, passez aupg8000
pilote. C'est du pur Python et moins capricieux.la source
Sur Ubuntu, j'avais juste besoin du package de développement postgres:
sudo apt-get install postgresql-server-dev-all
la source
Le mien était situé dans /Library/PostgreSQL/9.4/bin
export PATH=$PATH:/Library/PostgreSQL/9.4/bin
la source