如何使用 pyodbc 将 MS Access 连接到 Python
How to connect MS Access to Python using pyodbc
我在使用 pyodbc 连接访问数据库时遇到问题。我已经看到其他与我的工作几乎相同的示例代码:
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=PYODBC.accdb;UID=me;PWD=pass')
cursor = cnxn.cursor()
cursor.execute("SELECT Forename FROM Student")
row = cursor.fetchone()
if row:
print(row)
我的机器 运行 windows 7 家庭高级版 64 位。
我有 Microsoft Office 2010; 32位
我是 运行 python 3.3; 32 位
我不知道它出了什么问题,我什至没有收到错误消息,shell 打开了,但没有任何反应。非常感谢任何帮助
由于您使用的是 Microsoft Office 和 Python 的 32 位版本,一旦您拥有正确的连接字符串,您就可以开始了。它应该是这样的:
connStr = (
r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};"
r"DBQ=C:\full\path\to\your\PYODBC.accdb;"
)
cnxn = pyodbc.connect(connStr)
我正在使用 Win10 和 Office 365,我的问题已通过安装 Microsoft Access Database Engine 2016 Redistributable 解决
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++ 构建工具”获取它
这已通过让正确版本的 PY 从 PYPI 请求已编译为 WHL 的 PYODBC 版本得到解决。
我安装了 PY3.8,因为 PYPI (https://pypi.org/project/pyodbc/#files) 没有可用于 PY 3.9 的预编译 PYODBC WHL。那么
pip 安装 pyodbc
刚刚从 PYPI 收集了 WHL,不需要编译器。一切顺利。
DavidSheldon 在 Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat) 上的另一个回复表明升级 setuptools 可以解决问题,尽管我找不到这方面的基础。
此外,由于我的 OS 只有 32 位 MS Office,我不得不使用 32 位 Python。
全部在 Win10 上。
我在使用 pyodbc 连接访问数据库时遇到问题。我已经看到其他与我的工作几乎相同的示例代码:
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=PYODBC.accdb;UID=me;PWD=pass')
cursor = cnxn.cursor()
cursor.execute("SELECT Forename FROM Student")
row = cursor.fetchone()
if row:
print(row)
我的机器 运行 windows 7 家庭高级版 64 位。 我有 Microsoft Office 2010; 32位 我是 运行 python 3.3; 32 位
我不知道它出了什么问题,我什至没有收到错误消息,shell 打开了,但没有任何反应。非常感谢任何帮助
由于您使用的是 Microsoft Office 和 Python 的 32 位版本,一旦您拥有正确的连接字符串,您就可以开始了。它应该是这样的:
connStr = (
r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};"
r"DBQ=C:\full\path\to\your\PYODBC.accdb;"
)
cnxn = pyodbc.connect(connStr)
我正在使用 Win10 和 Office 365,我的问题已通过安装 Microsoft Access Database Engine 2016 Redistributable 解决
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++ 构建工具”获取它
这已通过让正确版本的 PY 从 PYPI 请求已编译为 WHL 的 PYODBC 版本得到解决。 我安装了 PY3.8,因为 PYPI (https://pypi.org/project/pyodbc/#files) 没有可用于 PY 3.9 的预编译 PYODBC WHL。那么 pip 安装 pyodbc 刚刚从 PYPI 收集了 WHL,不需要编译器。一切顺利。
DavidSheldon 在 Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat) 上的另一个回复表明升级 setuptools 可以解决问题,尽管我找不到这方面的基础。
此外,由于我的 OS 只有 32 位 MS Office,我不得不使用 32 位 Python。
全部在 Win10 上。