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

2024-04-29 06:38:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用64位python anaconda v4.4,它运行python v3。我有MS Access 2016 32位版本。我想使用pyodbc让python与Access对话。是否可以使用64位pyodbc与MS Access 2016 32位数据库进行对话?

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


Tags: 版本程序运行数据库accessanacondav3降级对话
3条回答

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

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

可以。只需安装

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

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

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

祝你好运!

相关问题 更多 >