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

Python 64位pyodbc是否可以与32位MS access数据库通信?,python,ms-access,odbc,32bit-64bit,pyodbc,Python,Ms Access,Odbc,32bit 64bit,Pyodbc,我使用的是运行PythonV3的64位PythonAnacondaV4.4。我有MS Access 2016 32位版本。我想使用pyodbc让python与Access对话。是否可以使用64位pyodbc与MS Access 2016 32位数据库通信 我已经有很多python应用程序使用64位python anaconda运行。降级到32位python将是一件麻烦事。不幸的是,您需要32位python才能与32位MS Access通信。但是,您应该能够安装32位版本的Python和64位Py

我使用的是运行PythonV3的64位PythonAnacondaV4.4。我有MS Access 2016 32位版本。我想使用pyodbc让python与Access对话。是否可以使用64位pyodbc与MS Access 2016 32位数据库通信


我已经有很多python应用程序使用64位python anaconda运行。降级到32位python将是一件麻烦事。

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

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


祝你好运

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

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

是的,您可以: 只需安装

AccessDatabaseEngine_X64.exe /passive
(其中包含x86和x64版本的驱动程序),您会没事的。不要忘记
/passive
选项,因为如果您这样做,除非您也安装了MS Office 2010,否则它不会安装。您可以从

安装
AccessDatabaseEngine_X64.exe
后,应在python外壳上运行以下代码,以测试一切正常:

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)']

保重。

太好了!这对我来说是个好消息。我猜当我安装32位Access时,会安装32位ODBC驱动程序。因此,也许我需要安装64位ODBC驱动程序来与64位python pyodbc通信。除了安装的驱动程序外,还安装了两个独立的配置实用程序:ODBC数据源(32位)和ODBC数据源(64位)。这些至少可以让您看到安装了哪些驱动程序,但也有助于进行一些配置。@user3848207我知道这有点太晚了……但如果您仍在努力,请检查我的答案。我不这么认为。请检查下面的答案。请注意,如果您在32位office上安装64位驱动程序,您还需要删除或重命名以下注册表项中的mso.dll注册表值:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\office\14.0\Common\FilesPath如果您不这样做,则每次尝试打开此office时都将尝试运行修复安装程序是的,美赞克从来没有发生过。。。。很明显,这并不是发生在每台电脑上。。。。不过我也遇到过。关于更多细节,以下网站也提到了可能出现的问题:希望它也能帮助其他人