使用 pyodbc 模块的连接字符串不适用于 Enthought Python Distribution

Posted

技术标签:

【中文标题】使用 pyodbc 模块的连接字符串不适用于 Enthought Python Distribution【英文标题】:Connection strings using pyodbc module not working with Enthought Python Distribution 【发布时间】:2013-03-11 23:05:54 【问题描述】:

背景

我一直在使用 64 位版本的 Python 2.7.3。我想学习 matplotlib 和 numpy 库,所以我最终安装了适用于 Windows 的 Enthought Python Distribution,并且我还安装了 ipython 以配合它。现在,突然之间,以前工作的连接字符串不再与这个 Python 发行版中的 pyodbc 库一起工作,我不知道为什么。

示例

以下代码之前运行良好:

import pyodbc
dbFile = r'D:\Dropbox\School\Senior_Project\Database\HarmonicProfileDatabase_be.accdb'
cnxn = pyodbc.connect(r'DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ='+dbFile)

但现在返回以下错误:

Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

这些事情让学习编程变得如此令人沮丧,但我离想出一个我一直在努力放弃的项目的解决方案太近了。

【问题讨论】:

不确定这个问题的答案是否有帮助:***.com/q/6396429/42346 嗯...这可能就是问题所在。 Enthought 安装是 32 位的,但我实际上运行的是 64 位 Office。我将在我的桌面上安装 Python,看看我是否有同样的问题,但我需要这个才能在我的笔记本电脑上工作! 问题是我的office是64位安装的。我刚刚在我的桌面上试了一下,效果很好。谢谢你让我头疼,因为我完全忘记了我有 64 位办公室。如果你愿意,你可以把它作为答案。有什么建议可以让它在我的笔记本电脑上工作吗?因为没有免费的 64 位 Enthought 安装。 【参考方案1】:

问题是我使用的 Python(以及 pyodbc)版本是 32 位的。但是,我设法让自己获得了 64 位版本的 office。它们都需要是 32 位(或都是 64 位)才能正常工作。

【讨论】:

以上是关于使用 pyodbc 模块的连接字符串不适用于 Enthought Python Distribution的主要内容,如果未能解决你的问题,请参考以下文章

python:数据库连接操作入门

连接字符串中的 PYODBC 传递变量

SqlAlchemy 等效于使用 FreeTDS 的 pyodbc 连接字符串

为啥三元条件不适用于字符串连接

Sage 50 的 Pyodbc 到 SQLAlchemy 连接字符串

PYODBC 截断 SQL Server FOR JSON 查询的响应