PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

python pip install errore di installazione psycopg2

La risposta accettata qui è corretta (tranne che penso che debba essere ln -fs , infatti penso che potrebbe anche rischiare di destabilizzare il tuo sistema operativo se non (?)). Dopo essermi imbattuto in questo e averlo affrontato, voglio solo raccogliere la soluzione completa per questo problema e l'altro problema di lib (libcrypto.1.0.0.dylib) che incontrerai per Postgres 9.* su Mountain Lion e Snow Leopard, e forse altri sistemi. Questo mi ha anche impedito di eseguire psql, che si è lamentato delle stesse due librerie.

Essenzialmente ci sono due librerie di versioni successive necessarie in /usr/lib , libssl e libcrypto. Puoi trovare le versioni necessarie di queste librerie nella directory lib di Postgres.

  • Se sei OSX e hai installato la versione Enterprise DB di Postgres, questa sarà in /Library/PostgreSQL/9.2/lib .
  • Per altri tipi di installazione di Postgres, cerca la directory lib all'interno della directory di installazione di Postgress, ad esempio per Postgress.app, trova la directory lib in /Applications/Postgres.app/Contents/MacOS/lib ,
  • per la birra da qualche parte in /usr/local/Cellar ,
  • su *nix, ovunque sia la tua installazione. Ma guarda prima su *nix se la tua distribuzione ha versioni successive solo tramite il gestore pacchetti.

Per prima cosa copia l'ultima di queste due lib dalla directory lib di Postgres in /usr/lib :

sudo cp /Library/PostgreSQL/9.2/lib/libssl.1.0.0.dylib /usr/lib
sudo cp /Library/PostgreSQL/9.2/lib/libcrypto.1.0.0.dylib /usr/lib

Quindi aggiorna (o crea) i collegamenti simbolici /usr/lib per queste librerie. In entrambi i casi il comando è ln -fs :

sudo ln -fs /usr/lib/libssl.1.0.0.dylib /usr/lib/libssl.dylib
sudo ln -fs /usr/lib/libcrypto.1.0.0.dylib /usr/lib/libcrypto.dylib

Dovrebbe essere risolto. Abbastanza sicuro ln -fs è meglio che eliminare il collegamento simbolico e rifarlo, quindi ci sono meno possibilità che libssl sia introvabile da qualcosa che ne ha bisogno per il tempo in cui non è presente (fa la stessa cosa; prima elimina il collegamento simbolico se è già lì, solo più velocemente di quanto tu possa digitarlo). Sempre attenti a non scherzare su /usr/lib.