Modules Python PostgreSQL. Qui est le meilleur?

j'ai vu un certain nombre de modules postgresql pour python comme pygresql, pypgsql, psyco. La plupart d'entre eux sont conformes à L'API Python DB 2.0, certains ne sont plus activement développés. Quel module recommandez-vous? Pourquoi?

24
demandé sur jmissao 2008-09-28 00:55:04
la source

6 ответов

psycopg2 semble être la plus populaire. Je n'ai jamais eu aucun problème avec elle. Il y a en fait une interface Python pure pour PostgreSQL aussi, appelée bpgsql. Je ne le recommanderais pas sur psycopg2, mais il est récemment devenu assez capable pour supporter Django et est utile si vous ne pouvez pas compiler des modules C.

16
répondu Jim 2008-09-28 01:00:21
la source

je suggère Psycopg sur Psycopg2 puisque le premier semble un peu plus sable. Au moins dans mon expérience. J'ai une application fonctionnant 24/7 et parfois je recevais des pannes de mémoire aléatoires (double free ou erreurs de corruption) de Psycopg2. Rien que j'aurais pu déboguer rapidement ou facilement puisque ce n'est pas une erreur Python mais une erreur C. Je suis passé à Pyscopg et je n'ai eu aucun accident après ça.

Aussi, comme dit dans un autre post, bpgsql semble un très bon alternative. Il est stable et facile à utiliser car vous n'avez pas besoin de le compiler. Le seul mauvais côté est que la bibliothèque n'est pas threadsafe.

Pygresql semble agréable, il y a un moyen plus direct d'interroger la base de données avec cette bibliothèque. Mais je ne sais pas comment la stabilité de celui-ci est bien.

2
répondu jdcaron 2009-10-11 14:06:27
la source

Psycopg1 est connu pour de meilleures performances dans les environnements filetés lourds (comme les applications web) que Psycopg2, bien qu'il ne soit pas maintenu. Les deux sont bien écrits et solides, je choisirais un de ces deux en fonction de cas d'utilisation.

1
répondu zgoda 2008-09-28 17:04:17
la source

Je n'utilise que psycopg2 et je n'ai aucun problème avec ça.

0
répondu Szymon Lipiński 2009-10-16 23:10:43
la source

j'ai utilisé pg8000 sans aucun problème au cours des 3 dernières années. Il est à jour et disponible sur pypi et fonctionne sur python2 et python3. Vous pouvez utiliser "pip install pg8000" pour l'obtenir rapidement (n'oubliez pas d'utiliser --proxy=yourproxy:yourport si vous êtes derrière un pare-feu).

si vous êtes inquiet de la sécurité du thread, il fournit également un score pour la sécurité du thread (voir:http://pybrary.net/pg8000/dbapi.html et https://www.python.org/dev/peps/pep-0249/ pour définitions des différents niveaux de sécurité des fils) (bien que je n'ai pas encore utilisé les fils avec psql).

0
répondu Chmod 2016-03-16 00:01:23
la source

d'après mon expérience, psycopg2 est la bibliothèque la plus utilisée pour cela. Comme vous l'avez dit, il est compatible avec L'API 2.0 de DB, ce qui donne une interface solide pour travailler avec.

pour ceux qui trouvent l'API standard un peu trop verbeuse et difficile à travailler, j'ai fait une petite bibliothèque qui pourrait aider:

https://github.com/hugollm/rebel

0
répondu hugo_leonardo 2016-11-01 20:22:26
la source

Autres questions sur