我在Windows8.1 64位机器上运行python 2.7 32位。
我可以访问2013年和一个.accdb文件,我正试图从访问该文件。
我可以在64位ODBC管理器中创建64位DSN。但是,当我试图从python连接到它时,我会得到以下错误:
错误:(U‘no 002’,u'IM002ODBC驱动程序管理器数据源名称未找到且未指定默认驱动程序‘)
据推测,python只是在寻找32位的DSN,并没有找到我创建的64位DSN。
当我试图在32位ODBC管理器中创建32位DSN时,没有一个accdb文件的驱动程序(只有.mdb)。
我想我需要一个32位的ODBC驱动程序来访问2013年文件(.accdb),但是还没有找到一个。
做我想做的事情有可能吗?-- 32位python访问2013年的.accdb文件?
发布于 2014-01-28 10:35:34
32位应用程序(包括Python )只能使用32位ODBC驱动程序。
64位应用程序(包括Python )只能使用64位ODBC驱动程序。
如果你有:
pyodbc模块的32位Python那么你必须改变一些事情:
odbc模块的Active Python ),然后可以使用64位版本的pyodbc模块(我在Python2.6、2.7和3.3中看到了)使用pyodbc.dataSources(),您可以列出ODBC源:
sources = pyodbc.dataSources()
dsns = list(sources.keys())
dsns.sort()
sl = []
for dsn in dsns:
sl.append('%s [%s]' % (dsn, sources[dsn]))
print('\n'.join(sl))如果您使用ActiveState Python,那么您可以使用odbc模块列出它们,如我的菜谱:http://code.activestate.com/recipes/578782-printing-list-of-odbc-data-sources/?in=user-186902
发布于 2015-01-22 22:41:53
我也有过同样的问题。对我来说,问题是我有32位python和32位pyodbc以及32位MS访问权限。但是我创建的pyqt应用程序不会在具有64位访问权限的计算机上运行。
我的解决方案是安装32位访问驱动程序(正如Mikal提到的).http://www.microsoft.com/en-us/download/details.aspx?id=13255在命令提示符下使用"/passive“选项。否则,它就不会安装。
例如,安装了驱动程序的C:\Downloads\AccessDatabaseEngine.exe /passive,现在我的应用程序在主机上工作,没有问题。
安装32位和64位访问驱动程序可能存在问题,也可能没有问题。到目前为止,我还没见过。
发布于 2014-01-27 23:22:46
反复试验表明,安装"Access数据库引擎“2007似乎为访问accdb文件创建了32位ODBC源代码。
https://stackoverflow.com/questions/21393558
复制相似问题