繁体   English   中英

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

[英]Is it possible for 64-bit pyodbc to talk to 32-bit MS access database?

我正在使用运行 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 将是一件苦差事。

是的,您可以:

只需安装

AccessDatabaseEngine_X64.exe /passive

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

安装AccessDatabaseEngine_X64.exe您应该在 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

祝你好运!

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM