Модули Python PostgreSQL. Какой лучше? - PullRequest
26 голосов
/ 28 сентября 2008

Я видел несколько модулей postgresql для python, таких как pygresql, pypgsql, psyco. Большинство из них совместимы с Python DB API 2.0, некоторые активно не разрабатываются. Какой модуль вы рекомендуете? Почему?

Ответы [ 6 ]

17 голосов
/ 28 сентября 2008

psycopg2 кажется самым популярным. У меня никогда не было с этим проблем. На самом деле для PostgreSQL также есть чистый интерфейс Python, называемый bpgsql . Я бы не рекомендовал его по сравнению с psycopg2, но недавно он стал достаточно способным для поддержки Django и полезен, если вы не можете скомпилировать модули C.

2 голосов
/ 11 октября 2009

Я предлагаю Psycopg поверх Psycopg2, так как первый кажется немного более соболиным. По крайней мере, по моему опыту. У меня есть приложение, работающее 24/7, и иногда я получаю случайные сбои памяти (ошибки двойного освобождения или повреждения) от Psycopg2. Ничего, что я мог бы отладить быстро или легко, так как это не ошибка Python, а ошибка Си. Я просто переключился на Pyscopg, и после этого у меня не было сбоев.

Также, как сказано в другом посте, bpgsql кажется очень хорошей альтернативой. Он стабилен и прост в использовании, так как вам не нужно его компилировать. Единственная плохая сторона в том, что библиотека не безопасна для потоков.

Pygresql выглядит неплохо, есть более прямой способ сделать запрос к базе данных с помощью этой библиотеки. Но я не знаю, насколько он стабилен.

1 голос
/ 01 ноября 2016

По моему опыту, psycopg2 - наиболее используемая библиотека для этого. Как вы сказали, он совместим с DB API 2.0, что обеспечивает надежный интерфейс для работы.

Для тех, кто считает стандартный API слишком многословным и трудным для работы, я создал небольшую библиотеку, которая может помочь:

https://github.com/hugollm/rebel

1 голос
/ 28 сентября 2008

Psycopg1 известен лучшей производительностью в многопоточных средах (например, веб-приложениях), чем Psycopg2, хотя и не поддерживается. Оба хорошо написаны и безупречны, я бы выбрал один из этих двух в зависимости от варианта использования.

0 голосов
/ 15 марта 2016

Я использовал pg8000 без проблем за последние 3 года. Он обновлен и доступен на pypi и работает как на python2, так и на python3. Вы можете использовать «pip install pg8000», чтобы быстро получить его (не забудьте использовать --proxy = yourproxy: yourport, если вы находитесь за брандмауэром).

Если вы беспокоитесь о безопасности потока, он также дает оценку безопасности потока (определения различных уровней безопасности потока см. В http://pybrary.net/pg8000/dbapi.html и https://www.python.org/dev/peps/pep-0249/) (хотя у меня есть темы с psql пока не используются).

0 голосов
/ 16 октября 2009

Я использую только psycopg2 и у меня не было проблем с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...