Dla każdego, kto szuka rozwiązania tego problemu w systemie macOS Sierra 10.12 (lub nowszym, najprawdopodobniej):Naprawiłem to, instalując narzędzia wiersza poleceń:
xcode-select --install
Następnie pip install psycopg2
powinien działać.
Jeśli nie, możesz również spróbować połączyć się z openssl piwa:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
z openssl zainstalowanym przez brew. Zauważ, że brew link openssl --force
już nie działa:
$ 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
Jak @macho wskazuje poniżej, jeśli to nadal nie działa, może być konieczne użycie --no-cache
opcja pipsa, np.
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2
Pamiętaj, aby odpowiednio dostosować te ścieżki, jeśli na przykład budujesz na komputerach Mac ARM/Apple M1 (ponieważ homebrew jest instalowany w /opt/homebrew/
); polecenie w następujący sposób:
env LDFLAGS="-I/opt/homebrew/opt/openssl/include -L/opt/homebrew/opt/openssl/lib" pip --no-cache install psycopg2