N'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