23

我应该使用什么库从 Windows 上的 python 连接到 odbc?就 odbc 而言,pywin32 有什么好的替代方案吗?

我正在寻找有据可查、健壮、积极维护等pyodbc看起来不错的东西——还有其他的吗?

4

6 回答 6

26

你已经建议了pyodbc,我同意你的看法。

在我的经验中,它给了我最少的问题;我使用了 pymssqladodbapi,当它们抛出异常/创建问题时,我换掉了代码并用 pyodbc 替换它,它要么解决了问题,要么给出了更好的错误消息,以便我可以更快地调试。

值得一提的是,我主要使用它来连接MSSQL Server 数据库

于 2009-04-20T14:26:37.810 回答
17

我使用SQLAlchemy进行所有 python 数据库访问。我强烈推荐 SQLAlchemy。

SA 在连接到 SQL 服务器数据库时在后台使用 pyodbc。它使用其他 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 的真正价值在于它的ORMSQL 表达式语言。看看,值得努力学习使用。

于 2009-04-20T13:47:27.840 回答
7

另一种选择是用纯 Python 编写的pypyodbc 。它可以看作是对 pyodbc 模块的重新实现——只有大约 1800 行代码,有利于维护。

这是在 Python 中访问 mssql 的 Hello World 示例

于 2012-09-26T04:19:18.490 回答
1

我在工作中使用 pyodbc,它从来没有让我失望(我们有各种 dbs)。它强大且快速。

它得到积极维护,python 3 版本即将推出。

如果您想要具有付费支持的“企业”软件,您可以使用mxODBC

于 2010-08-25T09:43:51.150 回答
1

您可以试一试 turbodbc。从 1.1.1 版本开始,正式支持 Windows。很有可能它比 pyodbc 更快。

于 2017-04-12T11:11:48.400 回答
-3

pyodbc现在支持 Python 3 !

于 2011-12-27T01:59:41.623 回答