TLDR1 - PYODBC连接不需要同时使用*.mdb和*.accdb。对我来说,两者都存在与一个错误相关
TLDR2 - 连接32位驱动程序需要32位Python
TLDR3 - 有时PYPI没有编译代码作为'pip install somemodule'的WHL文件,因此要么获取C++编译器,要么找到具有WHL的Python版本,并使用该Python版本
包括*.accdb会返回一个错误。
一旦我排除了*.accdb,就不再有错误了
当没有包括'DBQ='时也出现了错误。
以下任何一个似乎都可以解决错误;
import pyodbc
cnxn = pyodbc.connect(r"DRIVER={Microsoft Access Driver (*.mdb)};" + \
r"DBQ=C:\full\path\to\your\PYODBC.accdb;"
)
或者;
cnxn = pyodbc.connect("DRIVER={Microsoft Access Driver (*.mdb)};" + \
"DBQ=C:\\full\\path\\to\\your\\PYODBC.accdb;"
)
同时,对于'pip install pyodbc',我遇到了一个错误
错误:需要 Microsoft Visual C++ 14.0 或更高版本。请使用“Microsoft C++ Build Tools”获取。
通过从 PYPI 请求已经编译为 WHL 的 PYODBC 版本,解决了这个问题。我安装了 PY3.8,因为 PYPI (https://pypi.org/project/pyodbc/#files) 没有可用于 PY 3.9 的预编译 PYODBC WHL。然后,pip install pyodbc 就从 PYPI 收集了 WHL,而不需要编译器。一切都很好。
DavidSheldon 在 Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat) 中的另一个回复表明,升级 setuptools 将解决该问题,但我找不到这个基础。
由于我的操作系统只有 32 位 MS Office,所以我必须使用 32 位 Python。
所有这些都在 Win10 上进行。