Pregunta

He visto varios módulos postgresql para python como pygresql, pypgsql, psyco. La mayoría de ellos son compatibles con Python DB API 2.0, algunos ya no se están desarrollando activamente. ¿Qué módulo me recomiendan? ¿Por qué?

¿Fue útil?

Solución

psycopg2 parece ser el más popular. Nunca he tenido ningún problema con eso. En realidad, también hay una interfaz Python pura para PostgreSQL, llamada bpgsql . No lo recomendaría en lugar de psycopg2, pero recientemente se ha vuelto lo suficientemente capaz para soportar Django y es útil si no puedes compilar los módulos C.

Otros consejos

Sugiero Psycopg sobre Psycopg2 ya que el primero parece un poco más sable. Al menos en mi experiencia. Tengo una aplicación que se ejecuta las 24 horas del día, los 7 días de la semana ya veces recibía errores de memoria aleatorios (errores de corrupción o doble error) de Psycopg2. Nada de lo que podría haber hecho una depuración rápida o sencilla, ya que no es un error de Python sino un error de C. Acabo de cambiar a Pyscopg y no tuve ningún problema después de eso.

También, como se dijo en otra publicación, bpgsql parece una muy buena alternativa. Es estable y fácil de usar, ya que no es necesario compilarlo. El único lado malo es que la biblioteca no es segura para subprocesos.

Pygresql parece agradable, hay una forma más directa de consultar la base de datos con esta biblioteca. Pero no sé cuán estable es este.

Psycopg1 es conocido por su mejor rendimiento en entornos con muchos hilos (como las aplicaciones web) que Psycopg2, aunque no se mantiene. Ambos están bien escritos y son sólidos, elegiría uno de estos dos dependiendo del caso de uso.

En mi experiencia, psycopg2 es la biblioteca más utilizada para esto. Como ha dicho, es compatible con DB API 2.0, que proporciona una interfaz sólida para trabajar.

Para aquellos que encuentran que la API estándar es un poco demasiado detallada y difícil de trabajar, hice una pequeña biblioteca que podría ayudar:

https://github.com/hugollm/rebel

Solo uso psycopg2 y no tuve problemas con eso.

He usado pg8000 sin ningún problema en los últimos 3 años. Está actualizado y disponible en pypi y funciona tanto en python2 como en python3. Puede usar " pip install pg8000 " para obtenerlo rápidamente (no olvides usar --proxy = yourproxy: yourport si estás detrás de un firewall).

Si le preocupa la seguridad de los hilos, también proporciona una puntuación para la seguridad de los hilos (consulte: http: //pybrary.net/pg8000/dbapi.html y https: // www.python.org/dev/peps/pep-0249/ para las definiciones de los diferentes niveles de seguridad de subprocesos (aunque todavía no he usado subprocesos con psql).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top