Общие способы подключения к ODBC из Python на Windows? - PullRequest
23 голосов
/ 20 апреля 2009

Какую библиотеку я должен использовать для подключения к odbc из python в Windows? Есть ли хорошая альтернатива для pywin32, когда дело доходит до odbc?

Я ищу что-то хорошо документированное, надежное, активно поддерживаемое и т. Д. pyodbc выглядит хорошо - есть ли другие?

Ответы [ 6 ]

26 голосов
/ 20 апреля 2009

Вы уже предложили pyodbc , и я собираюсь с вами согласиться.

Это дало мне наименьшее количество проблем в моем опыте; Я использовал pymssql и adodbapi , и когда те бросали исключения / создавали проблемы, я выменял код и заменял его на pyodbc, и он либо исправлял проблему, либо выдавал ошибку сообщения, чтобы я мог отлаживать быстрее.

Стоит отметить, что я в основном использую его для подключения к MSSQL Server БД.

17 голосов
/ 20 апреля 2009

Я использую SQLAlchemy для всего доступа к базе данных Python. Я настоятельно рекомендую SQLAlchemy.

SA использует pyodbc под капотом при подключении к базам данных SQL-сервера. Он использует другие библиотеки DBAPI для подключения к другой базе данных, например, cx_Oracle.

Упрощенный пример использования SQLAlchemy, как если бы вы обычно использовали модуль DBAPI:

import sqlalchemy

engine = sqlalchemy.create_engine('sqlite:///database.db')
for r in engine.execute('SELECT * FROM T'):
    print(r.OneColumn, r.OtherColumn)

Но реальная ценность SQLAlchemy заключается в его ORM и языке выражений SQL . Посмотрите, стоит научиться пользоваться.

6 голосов
/ 26 сентября 2012

Другой альтернативой является pypyodbc , который был написан на чистом Python. это можно рассматривать как повторную реализацию модуля pyodbc - всего около 1800 строк кода, что хорошо для обслуживания.

Вот пример Hello World для доступа к mssql в Python .

1 голос
/ 12 апреля 2017

Вы можете дать turbodbc вращение. Начиная с версии 1.1.1, он официально поддерживает Windows. Вероятность того, что вы делаете, выше, чем у pyodbc.

1 голос
/ 25 августа 2010

Я использую pyodbc на работе, и он никогда не подводил меня (у нас есть varius dbs). Это надежный и быстрый.

Он активно поддерживается, и скоро появится версия Python 3.

Если вам нужно «корпоративное» программное обеспечение с платной поддержкой, вы можете использовать mxODBC .

0 голосов
/ 27 декабря 2011

Python 3 теперь поддерживается pyodbc !

...