¡No olvide que su variable $ PATH en el entorno virtual! = Su variable $ PATH global. Puede confirmar esto con 'echo $ PATH' en su virtualenv y también en un nuevo shell. Por lo tanto, a menos que desee instalar PostgreSQL como una instancia única dentro de su entorno virtual (no es algo que valga la pena hacer, en mi opinión), deberá modificar la variable $ PATH dentro de virtualenv para incluir la ruta a su instalación global (que resuelva su error pg_config faltante).
Estos son los pasos:
1.) En un nuevo shell, escriba 'which pg_config'. Esto devolverá el camino. Cópialo. En mi caso, la ruta se veía así: /Applications/Postgres.app/Contents/Versions/9.3/bin
2.) De vuelta en su shell virtualenv, escriba 'export PATH = / your-path-to-pg_config: $ PATH'
3.) Luego, todavía dentro del virtualenv, 'pip install psycopg2'
Si todo va según lo planeado, esto instalará psycopg2 dentro del entorno virtual, pero la instalación se referirá a su instalación Global PostgreSQL. En mi caso, esta instalación global se instaló a través de Postgres.App, de ahí la ruta. Prefiero este método de trabajar con psycopg2, ya que significa que puedo usar la base de datos fácilmente dentro de cualquier virtualenv en lugar de solo dentro del entorno virtual definido.
Espero que esto ayude a cualquiera que llegue aquí. Para Google juice, aquí está el lenguaje de error explícito (y vago) que se muestra cuando se encuentra con este problema: El
comando python setup.py egg_info falló con el código de error 1