PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Instalacja psycopg2 kończy się niepowodzeniem na MacOS z niejasnym komunikatem o błędzie

Dzięki za dodanie dziennika błędów, bez którego znalezienie problemu byłoby bardzo trudne. Dobra robota.

Ta część dziennika była naprawdę interesująca:

    gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -DPSYCOPG_VERSION=2.8.2 (dt dec pq3 ext lo64) -DPG_VERSION_NUM=110002 -DHAVE_LO64=1 -I/Library/Frameworks/Python.framework/Versions/3.7/include/python3.7m -I. -I/usr/local/Cellar/postgresql/11.2_1/include -I/usr/local/Cellar/postgresql/11.2_1/include/server -c psycopg/typecast.c -o build/temp.macosx-10.9-x86_64-3.7/psycopg/typecast.o
    gcc -bundle -undefined dynamic_lookup -arch x86_64 -g build/temp.macosx-10.9-x86_64-3.7/psycopg/psycopgmodule.o build/temp.macosx-10.9-x86_64-3.7/psycopg/green.o build/temp.macosx-10.9-x86_64-3.7/psycopg/pqpath.o build/temp.macosx-10.9-x86_64-3.7/psycopg/utils.o build/temp.macosx-10.9-x86_64-3.7/psycopg/bytes_format.o build/temp.macosx-10.9-x86_64-3.7/psycopg/libpq_support.o build/temp.macosx-10.9-x86_64-3.7/psycopg/win32_support.o build/temp.macosx-10.9-x86_64-3.7/psycopg/solaris_support.o build/temp.macosx-10.9-x86_64-3.7/psycopg/connection_int.o build/temp.macosx-10.9-x86_64-3.7/psycopg/connection_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/cursor_int.o build/temp.macosx-10.9-x86_64-3.7/psycopg/cursor_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/column_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/replication_connection_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/replication_cursor_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/replication_message_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/diagnostics_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/error_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/conninfo_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/lobject_int.o build/temp.macosx-10.9-x86_64-3.7/psycopg/lobject_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/notify_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/xid_type.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_asis.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_binary.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_datetime.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_list.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_pboolean.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_pdecimal.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_pint.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_pfloat.o build/temp.macosx-10.9-x86_64-3.7/psycopg/adapter_qstring.o build/temp.macosx-10.9-x86_64-3.7/psycopg/microprotocols.o build/temp.macosx-10.9-x86_64-3.7/psycopg/microprotocols_proto.o build/temp.macosx-10.9-x86_64-3.7/psycopg/typecast.o -L/usr/local/lib -lpq -lssl -lcrypto -o build/lib.macosx-10.9-x86_64-3.7/psycopg2/_psycopg.cpython-37m-darwin.so
    ld: library not found for -lssl

Drugie gcc wspomniał o tym:

-L/usr/local/lib -lpq -lssl -lcrypto -o ...

Oznacza to, że proces kompilacji szukał biblioteki (-l ) to jest ssl . Zobacz instrukcję gcc (https://linux.die.net/man/1/gcc ). Mówi, że -l jest przeszukanie biblioteki o nazwie library (w naszym przypadku ssl ) podczas łączenia.

Coś z ssl brakowało biblioteki.

Wyszukiwarka Google doprowadziła do zgłoszonego problemu:https://github.com/psycopg/psycopg2/issues /492 . Odpowiedź Joe Kempa (https://github.com/psycopg/psycopg2/issues /492#issuecomment-278481164 ) sugeruje ustawienie zmiennej środowiskowej w następujący sposób:

export LDFLAGS="-L/usr/local/opt/openssl/lib"

Inne opcje zostały wymienione tutaj:Nie można zainstalować psycopg2 z pipem w virtualenv na Mac OS X 10.7 .

Wygląda na to, że Twoje ustawienie LDFLAGS rozwiązało problem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie zewnętrzne 3 lub więcej stołów w Laravel 8

  2. Tabela łączenia sql z zapytaniem dotyczącym aktywnego rekordu szyn

  3. Generowanie szeregów czasowych między dwiema datami w PostgreSQL

  4. doktryna dbal querybuilder jako przygotowane oświadczenie

  5. Npgsql:Stara reprezentacja zmiennoprzecinkowa dla znaczników czasu nie jest obsługiwana