8

我的计算机上安装了 Python 2.7、MySQL 5.5、MySQL ODBC 连接器 5.1 和 pyodbc,运行 Windows 7、64 位...

唯一的问题是除了 32 位的 pyodbc 之外,所有东西都安装为 64 位。

使用easy_install下载pyodbc时,会自动下载32位版本。因此,当我尝试使用以下方式连接到我的数据库时:

cnxn = pyodbc.connect('DRIVER={MySQL ODBC 5.1 DRIVER};SERVER=localhost;DATABASE=test;UID=root;PWD=password')

我得到错误:

Data source name not found and no default driver specified (0) (SQLDriverConnect)

当我尝试使用以下命令指定 DSN 时:

cnxn = pyodbc.connect('DSN=dsn_name;etc...')

我得到错误:

The specified DSN contains an architecture mismatch between the Driver and Application (0) (SQLDriverConnect)

此链接告诉我这是由于 32/64 位不匹配,正如预期的那样:http: //msdn.microsoft.com/en-us/library/windows/desktop/ms712362 (v=vs.85).aspx

所以我有两个问题:

1)是否可以强制easy_install下载64位pyodbc,还是可以手动下载64位pyodbc?

2) 如果上述不可行,是否可以使用 Microsoft ODBC 数据源管理器窗口配置 DSN 以允许这样做。

谢谢。

4

2 回答 2

4

这里有一个“非官方”的 Python 模块列表

PyODBC 是为 64 位编译的其中之一。

此外,请确保您使用的是正确版本的 ODBC 管理器。默认为 64 位驱动程序,但您可以使用 32 位驱动程序%windir%\SysWOW64\odbcad32.exe

于 2012-06-19T20:30:46.403 回答
1

I spend a lot time to find out why pyodbc can't see 64 bit ODBC driver because I confused between bitness of Windows. So I will make it clear that

Python 32 bit + pyodbc 32 bit (default when install from pip) will read driver from %windir%\SysWOW64\odbcad32.exe

Python 64 bit + pyodbc 64 bit (you have to download from here) will read driver from %windir%\System32\odbcad32.exe

于 2018-08-15T07:04:35.593 回答