Per chiunque cerchi una soluzione per questo su macOS Sierra 10.12 (o versioni successive, molto probabilmente):ho risolto il problema installando gli strumenti da riga di comando:
xcode-select --install
Dopodiché, pip install psycopg2
dovrebbe funzionare.
In caso contrario, potresti anche provare a collegarti a openssl di brew:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
con openssl installato tramite brew. Nota che il brew link openssl --force
non funziona più:
$ 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
Come @macho sottolinea di seguito, se ancora non funziona, potrebbe essere necessario utilizzare il --no-cache
opzione di pip, ad es.
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2
Ricorda di regolare questi percorsi di conseguenza se, ad esempio, costruisci su Mac ARM/Apple M1 (poiché homebrew è installato su /opt/homebrew/
); comando come segue:
env LDFLAGS="-I/opt/homebrew/opt/openssl/include -L/opt/homebrew/opt/openssl/lib" pip --no-cache install psycopg2