Lexander
Апрель 10, 2009 17:41:27
Сейчас проектирую клиент-серверное приложение.
На сервере для хранения данных будет использоваться PostgreSQL. Серверная часть - Питон.
Посоветуйте, пожалуйста, какую лучше библиотеку (модуль) для доступа к PostgreSQL использовать:
PyGreSQL: 4.0 (01.01.2009) - проект устоявшийся и живет
pypgsql: 2.5.1 (07.06.2006) - проект вроде бы зачах
ocpgdb: 1.0.2 (05.08.2008) - проект относительно новый, мало информации, относительно давно обновлялся
pg8000: 1.07 (06.01.2009) - странно, что стартанули такой проект при наличии PyGreSQL. Но проект бурно развивается и даже паралельно делают ветку под Питон 3. Документация хорошая.
… ваше предложение …
Версии:
Python 2.6
PostgreSQL 8.3.7
Критерии: Python DB-API 2, высокая скорость, надежность (слишком сырой модуль использовать не хочу) работы, приличная документация.
Склоняюсь к PyGreSQL или pg8000.
PyGreSQL - старый проект, основан на предке 95 года выпуска и содержит много старого кода, который нужно поддерживать и делает сам модуль более тяжеловесным. Немного пугает наличием поддержки 2 интерфейсов, один из которых устарел, но по нему есть дока. По интерфейсу DB-API 2 доки нет. Впрочем, тут можно использовать и спецификацию, хоть и не так удобно. Немультипоточный, но можно использовать DBUtils.
pg8000 написан на чистом Питоне без использования сторонних библиотек, нэйтивно поддерживает мультипоточность. Хорошая актуальная документация тоже в его пользу.
Что скажете, коллеги?
ZZZ
Апрель 10, 2009 23:14:02
Я много работал с постгри и перепробовал разного… Серебрянной пути, как всегда нет. Но мой выбор пал на
psycopg2. ИМХО лучший.
Что касается тестов скорости, то самый быстрый был psycopg-
1… Но сами понимаете, что о нём думать не стоит. Уж лучше на PL/SQL написать… :-)
Lexander
Апрель 10, 2009 23:46:15
pysycopg1.1 я рассматривал, но убрал из претендентов как слишком старый и заброшенный проект.
А вот pysycopg2 что-то пропустил.
Спасибо.
ZZZ
Апрель 11, 2009 15:51:14
j2a
+1 на psycopg2
Ну… Не так громко.
Минусов у него не много, но выбирать, всё-таки, рекомендую “под себя”. Сейчас уже не вспомню, но помню, что серьёзно колебался между
PyGreSQL и
psycopg2. Что-то такое было в первом, что было удобно, но отсутствовало во втором… Правда не помню.
Добавленно:Второй победил из-за скорости. Я организовал довольно специфичные тесты “под проект” и отрыв был больше, чем в два раза…
j2a
Апрель 11, 2009 20:52:59
ZZZ
j2a
+1 на psycopg2
Ну… Не так громко.
Минусов у него не много, но выбирать, всё-таки, рекомендую “под себя”. Сейчас уже не вспомню, но помню, что серьёзно колебался между PyGreSQL и psycopg2. Что-то такое было в первом, что было удобно, но отсутствовало во втором… Правда не помню.
Добавленно:
Второй победил из-за скорости. Я организовал довольно специфичные тесты “под проект” и отрыв был больше, чем в два раза…
А чего “не громко”? +1 – это то что мы его используем. Если нужно DB API2 для pg-базы, то psycopg2 очень даже. Если нужны более низкоуровневые вещи – то pygresql. Есть еще более низкие (по крайней мере на pypi проскакивали). Я пользуюсь db api2, sqlalchemy, в этом плане psycopg2 меня (почти) устраивает
yusi4ka
Янв. 19, 2010 18:30:24
А какой модуль можете посоветовать для 3-го питона? В интернете нашла только py-postgresql