Подтвердить что ты не робот

Модули Python PostgreSQL. Что лучше?

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

Ответ 5

Я использовал 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).

Ответ 6

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

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

https://github.com/hugollm/rebel