sql >> Base de Datos >  >> RDS >> PostgreSQL

Error de instalación de python pip install psycopg2

La respuesta aceptada aquí es correcta (excepto que creo que debe ser ln -fs , de hecho, creo que incluso podría correr el riesgo de desestabilizar su sistema operativo si no (?)). Después de toparme con esto y solucionarlo, solo quiero recopilar la solución completa para este problema y el otro problema de lib (libcrypto.1.0.0.dylib) con el que se encontrará para Postgres 9.* en Mountain Lion y Snow Leopard, y tal vez otros sistemas. Esto también me impidió ejecutar psql, que se quejaba de las mismas dos librerías.

Esencialmente, se necesitan dos librerías de versiones posteriores en /usr/lib , libssl y libcrypto. Puede encontrar las versiones necesarias de estas bibliotecas en el directorio lib de Postgres.

  • Si tiene OSX e instaló la versión Enterprise DB de Postgres, estará en /Library/PostgreSQL/9.2/lib .
  • Para otros tipos de instalación de Postgres, busque el directorio lib dentro del directorio de instalación de Postgress, por ejemplo, para Postgress.app, busque el directorio lib en /Applications/Postgres.app/Contents/MacOS/lib ,
  • para elaborar cerveza en algún lugar de /usr/local/Cellar ,
  • en *nix, donde sea que esté su instalación. Pero vea primero en *nix si su distribución tiene versiones posteriores solo a través del administrador de paquetes.

Primero copie la última de estas dos librerías del directorio lib de Postgres a /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

Luego actualice (o cree) los enlaces simbólicos /usr/lib para estas librerías. De cualquier manera, el comando es 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

Debería arreglarse. Estoy bastante seguro de que ln -fs es mejor que eliminar el enlace simbólico y volver a crearlo, por lo que hay menos posibilidades de que libssl no pueda ser encontrado por algo que lo necesita durante el tiempo que no está presente (hace lo mismo; primero elimina el enlace simbólico si es ya está allí, solo que más rápido de lo que puede escribirlo). Siempre desconfiado de perder el tiempo en /usr/lib.