He visto una serie de 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 desarrollan activamente. ¿Qué módulo recomienda? ¿Por qué?Módulos Python PostgreSQL. ¿Cuál es el mejor?
Respuesta
psycopg2 parece ser el más popular. Nunca he tenido ningún problema con eso. También hay una interfaz pura de Python para PostgreSQL, llamada bpgsql. No lo recomendaría sobre psycopg2, pero recientemente ha sido lo suficientemente capaz para admitir Django y es útil si no puede compilar módulos C.
Otra opción pura de Python: pg8000 (http://pybrary.net/pg8000/) – bernie
Psycopg1 es conocido por un mejor rendimiento en entornos con muchos hilos de rosca (como aplicaciones web) que Psycopg2, aunque no se mantiene. Ambos están bien escritos y son sólidos, elegiría uno de estos dos según el caso de uso.
Psycopg 1 está terriblemente desactualizado: su uso no es recomendable. – piro
Sugiero Psycopg sobre Psycopg2 ya que el primero parece un poco más sable. Al menos en mi experiencia. Tengo una aplicación que funciona las 24 horas, los 7 días de la semana y, a veces, recibí bloqueos de memoria aleatorios (errores dobles de corrupción o de corrupción) de Psycopg2. No pude depurar nada rápido o fácilmente, ya que no es un error de Python sino un error de C. Me cambié a Pyscopg y no tuve ningún problema después de eso.
Además, como se dijo en otra publicación, bpgsql parece una muy buena alternativa. Es estable y fácil de usar ya que no necesita compilarlo. El único lado malo es que la biblioteca no es segura.
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 esta.
Como se indicó en otro comentario, hay muchos errores en Psycopg 1 que se han corregido en Psycopg 2 en aproximadamente 4 años de desarrollo. Informe cualquier error a la lista de correo. – piro
Yo 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 en python2 y python3. Puedes 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 subprocesos, también proporciona una puntuación para seguridad de subprocesos (consulte: http://pybrary.net/pg8000/dbapi.html y https://www.python.org/dev/peps/pep-0249/ para obtener definiciones de los diferentes niveles de seguridad de subprocesos) (aunque todavía no he utilizado subprocesos con psql).
Enlace al proyecto - https://pypi.org/project/pg8000 –
En mi experiencia, psycopg2 es la biblioteca más utilizada para esto. Como dijiste, es compatible con DB API 2.0, que ofrece una interfaz sólida para trabajar.
Para aquellos que encuentran la API estándar para ser un poco demasiado prolijo y difícil de trabajar, he hecho una pequeña biblioteca que podría ayudar:
- 1. ¿Cuál es el mejor editor de python?
- 2. ¿Cuál es el mejor IDE para Python para Windows
- 3. Driver python para postgresql
- 4. ¿Cuál es el beneficio del Patrón de Módulos Javascript?
- 5. ¿cuál es el mejor complemento de comercio electrónico para WordPress?
- 6. Instalación de PostgreSQL - error cargando módulos
- 7. ¿La mejor práctica para actualizar los módulos de Python?
- 8. ¿Cuál es la implementación de dict mejor ordenada en python?
- 9. ¿Cuál es la mejor interfaz de Python 3.1.1 a R?
- 10. Carga lenta: ¿cuál es el mejor enfoque?
- 11. ¿Cuál es el mejor argumento Pro OOP?
- 12. Sort ObservableCollection: ¿cuál es el mejor enfoque?
- 13. ¿Cuál es el mejor estilo de codificación?
- 14. Cuál es el mejor módulo Drupal Survey
- 15. ¿Cuál es el mejor motor 3D Actionscript3?
- 16. ¿Cuál es el mejor blog de XNA?
- 17. JSF vs Stripes, ¿cuál es el mejor?
- 18. ¿Cuál es el mejor ocultador de JavaScript?
- 19. ¿Cuál es el mejor visor para NLog?
- 20. ¿Cuál es el mejor datepicker de Java ..?
- 21. ¿Cuál es el mejor editor para AutoHotkey?
- 22. ¿Cuál es la mejor manera de escribir el código python en un archivo python?
- 23. Apache2: mod_wsgi o mod_python, ¿cuál es mejor?
- 24. Cuál es el equivalente de PostgreSQL para ISNULL()
- 25. ¿Cuál es la mejor manera de incluir jQuery, Underscore y Backbone como módulos AMD usando require.js?
- 26. ¿Cuál es la mejor manera de pasar variables comunes en módulos separados en Node.js?
- 27. ¿Cuál es el mejor recurso para aprender (N) ASM?
- 28. ¿Cuál es la mejor opción?
- 29. ¿Cuál es la mejor herramienta para admitir el desarrollo impulsado por el comportamiento en Python?
- 30. ¿Eliminar módulos de python?
[este artículo] (https: // wiki .postgresql.org/wiki/Python) ofrece una descripción general de todas las opciones y debe estar actualizado. La nota para 'Psycopg2' dice" _El controlador de python más popular, requerido para la mayoría de los frameworks de Python + Postgres_ ". – J0ANMM
De hecho, @ J0ANMM. Debería actualizar la publicación para confirmar que la respuesta que había elegido (hace casi 10 años) todavía está actualizada. Gracias. – jmissao