para descargar python postgresql python-2.7 ssl psycopg2

descargar - psycopg2 python 3



Psycopg2 Python SSL Support no está compilado en (7)

Como han dicho otros, el mensaje de error parece provenir de Postgres. Puede verificar esto escribiendo: psql sslmode=require si le da un terminal pgsql, entonces ssl funciona con postgres, si falla, entonces no lo hace

Pruebe y elimine postgres y vuelva a instalar con el soporte de openssl:

brew uninstall postgres brew update brew install postgres --with-openssl

Alternativamente, y esta es la forma en que lo sugeriría, hay un instalador de un solo clic en http://postgresapp.com que también podría facilitar la instalación. Siga las instrucciones en el sitio para instalarlo correctamente.

Cuando lo hice en Yosemite, lo instalé en ~ / Library / Application / Support / Postgres93 / var

También querrá crear un certificado (esto también podría ser de donde viene el error) ya sea de un registrador si va a ser público, en el más mínimo de los casos o autofirmado si es para un entorno de desarrollo / prueba.

openssl req -new -text -out server.req openssl rsa -in privkey.pem -out server.key rm privkey.pem openssl req -x509 -in server.req -text -key server.key -out server.crt chmod og-rwx server.key

Navegue a su directorio de configuración, por defecto es: ~ / Library / Application / Support / Postgres93 / var

Habilitar soporte ssl:

vim postgresql.conf # change this: # ssl = on # to this: ssl = on

Reinicie la aplicación y luego verifique ssl con psql "sslmode=require"

Si eso funciona, entonces inténtalo a través de tu código Python. Si funciona con el código anterior, pero no con Python, entonces definitivamente es un problema de código Python que debe resolverse.

Estoy tratando de conectarme a mi base de datos postgres usando psycopg2 con sslmode = ''required'' param; sin embargo, me sale el siguiente error

psycopg2.OperationalError: sslmode value "require" invalid when SSL support is not compiled in

Heres un par de detalles sobre mi sistema

  • Mac OS X El Capitán
  • Python 2.7
  • Psycopg2 instalado a través de pip
  • Python instalado a través de homebrew

Esto es lo que intenté hacer para solucionar el problema.

  • brew uninstall python
  • which python aún muestra python viviendo en /usr/local/bin/python , intentó desinstalar esto pero no pudo. Y escuché que este es el python que usa el sistema operativo y no debería ser desinstalado de todos modos
  • brew install python --with-brewed-openssl --build-from-source
  • pip uninstall psycopg2
  • pip install psycopg2

Después de hacer todo esto, la excepción sigue ocurriendo. Estoy ejecutando esta secuencia de comandos de Python a través de #!/usr/bin/env python No estoy seguro de que importe, pero es un directorio diferente al que which python muestra


Como no puedo comentar:
Agregando a la respuesta de Brideau que esto solo me funcionó después de cambiar mi versión de Postgres.

brew uninstall postgres brew update brew install postgres --with-openssl

A continuación, ejecute el código proporcionado por Brideau y debería funcionar.


El error que está recibiendo se debe a un problema con Postgres en sí, y no con psycopg2 .

psycopg2.OperationalError: sslmode value "require" invalid when SSL support is not compiled in

Lo anterior indica que la versión de Postgres con la que se construyó psycopg2 no tiene soporte SSL compilado. Cuando intenta conectarse al servidor de Posgres en ejecución con ssl=require que arroje este error.

No menciona cómo instaló Postgres, pero como está utilizando Homebrew para otras cosas, le recomiendo que también instale Postgres de la misma manera:

$ brew update $ brew install postgresql

La fórmula para postgresql muestra que depende de openssl y compila con el conjunto de indicadores --with-openssl . También instalará los encabezados libpq necesarios. Es posible que deba volver a instalar psycopg2 después de este paso para asegurarse de que selecciona las bibliotecas / versión correctas.

Curiosamente, hay un error en la lista de conda que enumera el mismo error que usted informa cuando se instaló la versión de psycopg2 de psycopg2 , vinculada en un sistema con postgres de Homebrew, lo que sugiere que las bibliotecas SSL faltantes también pueden desencadenar esto.

Yo sugeriría desinstalar cualquier versión existente de Postgres (incluidas las instaladas a través de Homebrew) antes de volver a instalar para minimizar el riesgo de que se use una incorrecta.


Intenta instalar psycopg2 desde MacPorts

sudo port install py27-psycopg2


Si está utilizando v2.6.1 o v2.6.2 de psycopg2 (como yo), la respuesta fue una simple actualización a v2.7. Al leer las notas de la versión de psycopg2, había una solución menor para SSL aunque no parece particularmente relevante.

Mi configuración fue la siguiente:

  • Mac OS X El Capitán 10.11.6
  • psycopg2 2.6.2 instalado a través de pip
  • PostgreSQL instalado a través de Enterprise DB Installer

Ejecutar pip uninstall psycopg2 seguido de pip install psycopg2 resolvió los problemas.


Tuve este mismo error, que resultó ser porque estaba usando la versión Anaconda de psycopg2. Para solucionarlo, adapté la solución de VictorF desde aquí y ejecuté :

conda uninstall psycopg2 sudo ln -s /Users/YOURUSERNAME/anaconda/lib/libssl.1.0.0.dylib /usr/local/lib sudo ln -s /Users/YOURUSERNAME/anaconda/lib/libcrypto.1.0.0.dylib /usr/local/lib pip install psycopg2

Luego, cuando ejecute la conda list verá que psycopg2 se instala con <pip> en la columna de la derecha. Después de eso, simplemente reinicié Python y todo funcionó.


Ya que está instalando vía pip, debería usar la versión más reciente de psycopg2 (2.6.1). Después de revisar un poco el código, parece que la excepción se está lanzando en connection_int.c, que llama directamente a las bibliotecas postgresql-c para configurar la conexión db. La llamada pasa así:

self->pgconn = pgconn = PQconnectStart(self->dsn); Dprintf("conn_connect: new postgresql connection at %p", pgconn); if (pgconn == NULL) { Dprintf("conn_connect: PQconnectStart(%s) FAILED", self->dsn); PyErr_SetString(OperationalError, "PQconnectStart() failed"); return -1; } else if (PQstatus(pgconn) == CONNECTION_BAD) { Dprintf("conn_connect: PQconnectdb(%s) returned BAD", self->dsn); PyErr_SetString(OperationalError, PQerrorMessage(pgconn)); return -1; }

Las palabras clave que se especificaron en su declaración de conexión a psycopg2.connect () se manejan a esa función y los errores se devuelven como excepción OperationalError.

En realidad, el error se está generando directamente en postgresql-lib; es posible que desee verificar qué versión está utilizando, cómo se creó y, si es posible, actualizarlo a una versión con soporte SSL o reconstruirlo desde la fuente con SSL habilitado.

El postgresql-docs también declara que la falta de soporte de SSL generará un error, si el sslmode está configurado para requerir , verificar-ca o verificar-completo . Vea here bajo sslmode para referencia.

El postgres-website enumera varias formas de instalar postgres desde paquetes binarios, por lo que puede elegir una que se adapte a sus necesidades. No estoy familiarizado con OSX, así que no tengo una recomendación sobre qué es lo mejor.

This pregunta también puede ser útil.

También debe volver a instalar el módulo psycopg2, asegúrese de usar la lib recién instalada al reconstruirla. Consulte la pregunta vinculada (en resumen, deberá colocar la ruta a pg_config que se incluye en su nueva instalación en $ PATH cuando ejecute pip install psycopg2 ).