Đối với bất kỳ ai đang tìm kiếm giải pháp cho vấn đề này trên macOS Sierra 10.12 (rất có thể là mới hơn):Tôi đã khắc phục sự cố này bằng cách cài đặt các công cụ dòng lệnh:
xcode-select --install
Sau đó, pip install psycopg2
sẽ hoạt động.
Nếu không, bạn cũng có thể thử liên kết với openssl của brew:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
với openssl được cài đặt qua brew. Lưu ý rằng liên kết brew link openssl --force
không hoạt động nữ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
Như @macho đã chỉ ra bên dưới nếu điều này vẫn không hoạt động, bạn có thể cần sử dụng --no-cache
tùy chọn của pip, ví dụ:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip --no-cache install psycopg2
Hãy nhớ điều chỉnh các đường dẫn này cho phù hợp nếu bạn xây dựng trên máy Mac ARM / Apple M1 chẳng hạn (vì homebrew được cài đặt tại /opt/homebrew/
); lệnh như sau:
env LDFLAGS="-I/opt/homebrew/opt/openssl/include -L/opt/homebrew/opt/openssl/lib" pip --no-cache install psycopg2