【发布时间】:2019-07-03 08:23:08
【问题描述】:
我想将 Python 连接到 MS-Access,但无法安装新软件(程序/驱动程序)并且没有管理员权限,因为我在公司 PC 上工作。有什么解决方法吗?
我可以获得 pyodbc 包,但由于我的 Python 是 64 位,而 MS-Access 是 32 位,我希望这是错误的来源。事实上,没有 64 位 MS-Access 驱动程序,只有一个 SQL 服务器:
import pyodbc
print(pyodbc.drivers.())
>>> ['SQL Server']
产生的错误如下:
import pyodbc
conn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
r'DBQ=path\file.accdb;')
>>> InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source
name not found and no default driver specified (0) (SQLDriverConnect)')
如前所述,我既不能安装 32 位 Python 也不能安装 64 位驱动程序(至少看起来我不能)。我尝试设置一个新环境以根据此answer by Mike Müller 安装 32 位 Python,但它导致“CondaHTTPError”,我无法修复 - 答案here 对我不起作用.
是否可以选择将 pyodbc 连接到 32 位驱动程序?来自swashek's answer,这可能有效
%windir%\SysWOW64\odbcad32.exe
但我不确定在 Python 中的何处或如何应用它。
将 Python 连接到 MS-Access 后,我的最终目标是提取 Access 查询,以便在 Python 中复制基于 Access 数据在 Access 中创建的表。有什么完全不同的方式或方法吗?
更多信息:我正在使用 Spyder 和 Anaconda 64 位。
【问题讨论】:
-
您的机器是否安装了 Java 运行时环境 (JRE)? (您可以尝试在命令提示符下运行
java -version进行检查。) -
我检查了它没有安装(错误:找不到Java SE运行时环境)
-
我们可以假设您的计算机上没有 Microsoft Access(独立的或作为 Microsoft Office 的一部分)?
-
Microsoft Access 作为 Microsoft Office Professional Plus 2013 的一部分安装在我的计算机上。
标签: python database ms-access pyodbc