Не забувайте, що ваша змінна $ PATH у віртуальному середовищі! = Ваша глобальна змінна $ PATH. Ви можете підтвердити це за допомогою 'echo $ PATH' у вашому virtualenv, а також у новій оболонці. Отже, якщо ви не хочете встановити PostgreSQL як унікальний екземпляр у вашому віртуальному середовищі (не те, що варто робити, imo), вам потрібно буде змінити змінну $ PATH у virtualenv, щоб включити шлях до вашої глобальної інсталяції (що буде вирішити вашу відсутність помилки pg_config).
Ось кроки:
1.) У новій оболонці введіть 'which pg_config'. Це поверне шлях. Скопіюйте його. У моєму випадку шлях виглядав так: /Applications/Postgres.app/Contents/Versions/9.3/bin
2.) Назад у вашій оболонці virtualenv введіть 'export PATH = / your-path-to-pg_config: $ PATH'
3.) Потім, все ще у virtualenv, 'pip install psycopg2'
Якщо все піде за планом, це встановить psycopg2 у віртуальному середовищі, але установка стосуватиметься вашої інсталяції Global PostgreSQL. У моєму випадку ця глобальна установка була встановлена через Postgres.App, отже, і шлях. Я віддаю перевагу цьому методу роботи з psycopg2, оскільки це означає, що я можу легко використовувати базу даних у будь-якому virtualenv, а не лише у визначеному віртуальному середовищі.
Сподіваюся, це допоможе кожному, хто сюди прибуде. Для Google juice, ось явна (і розпливчаста) мова помилок, що повертається, коли ви стикаєтесь із цією проблемою:
Не вдалося виконати команду python setup.py egg_info із кодом помилки 1