Para cualquiera que busque una solución para esto en macOS Sierra 10.12 (o posterior, lo más probable):lo arreglé instalando las herramientas de la línea de comandos:
xcode-select --install
Después de eso, pip install psycopg2
debería funcionar.
Si no es así, también podría intentar enlazar con el openssl de brew:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
con openssl instalado a través de brew. Tenga en cuenta que el enlace brew link openssl --force
ya no funciona:
$ brew link openssl --force 17.5s
Warning: Refusing to link: openssl
Linking keg-only openssl means you may end up linking against the insecure,
deprecated system OpenSSL while using the headers from Homebrew's openssl.
Instead, pass the full include/library paths to your compiler e.g.:
-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib
Como @macho señala a continuación, si esto aún no funciona, es posible que deba usar --no-cache
opción de pip, p. ej.
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2
Recuerde ajustar estas rutas en consecuencia si, por ejemplo, construye en ARM/Apple M1 Mac (ya que homebrew está instalado en /opt/homebrew/
); comando de la siguiente manera:
env LDFLAGS="-I/opt/homebrew/opt/openssl/include -L/opt/homebrew/opt/openssl/lib" pip --no-cache install psycopg2