64位pyodbc是否可以与32位MS访问数据库通信?

时间:2017-08-29 00:20:27

标签: python ms-access odbc 32bit-64bit pyodbc

我正在使用运行python v3的64位python anaconda v4.4。我有MS Access 2016 32位版本。我想使用pyodbc让python与Access交谈。是否可以使用64位pyodbc与MS Access 2016 32位数据库通信?

我已经有许多运行64位python anaconda的python应用程序。降级到32位python将是一件苦差事。

3 个答案:

答案 0 :(得分:4)

不幸的是,您需要使用32位Python与32位MS Access进行通信。但是,您应该能够在64位Python的同时安装32位版本的Python。假设您使用的是Windows,则在自定义安装期间,您可以选择目标路径。然后使用virtualenv。例如,如果您安装到C:\Python36-32

virtualenv --python=C:\Python36-32\bin\python.exe

祝你好运!

答案 1 :(得分:4)

我不是python专家,只是为了澄清一些可能的误解...... Access数据库文件不是32位或64位。 32位和64位版本的Access都使用相同的数据库文件格式。

需要MS Office Access应用程序连接或使用Access数据库文件。您可以下载包含ODBC驱动程序的Access数据库引擎。 most recent 2010 version具有32位和64位版本。您只需在连接字符串中指定正确的驱动程序即可使用64位驱动程序。同样,这并不直接与Python中的连接有关,但也许您可以使用64位驱动程序直接使用它。

答案 2 :(得分:3)

是的。只需安装

AccessDatabaseEngine_X64.exe /passive

(包含x86和x64版本的驱动程序),您会没事的。不要忘记/passive选项,因为如果这样做,除非您还安装了MS Office 2010,否则它将不会安装。您可以从Microsoft Access Database Engine 2010 Redistributable site

下载文件

安装后,在python shell上运行以下命令以测试一切正常:

import pyodbc
[x for x in pyodbc.drivers() if x.startswith('Microsoft')]

,您应该会得到类似的打印输出

['Microsoft Access Driver (*.mdb, *.accdb)', 'Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)', 'Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)', 'Microsoft Access Text Driver (*.txt, *.csv)']
相关问题