pyodbc:ubuntu上的.mdb连接错误

时间:2012-07-23 06:57:36

标签: python sql pyodbc unixodbc

我正在尝试访问位于我系统上的.mdb文件。我的代码看起来像这样:

import csv
import pyodbc

MDB = '/home/filebug/client/my.mdb'
DRV = '{Microsoft Access Driver (*.mdb)}'
PWD = 'mypassword'

conn = pyodbc.connect('DRIVER=%s;DBQ=%s;PWD=%s' % (DRV,MDB,PWD))
print conn
curs = conn.cursor()

SQL = 'SELECT * FROM InOutTable;' # insert your query here
curs.execute(SQL)

rows = curs.fetchall()

curs.close()
conn.close()

但我面临以下错误:

Traceback (most recent call last):
  File "mdb.py", line 8, in <module>
    conn = pyodbc.connect('DRIVER=%s;DBQ=%s;PWD=%s' % (DRV,MDB,PWD))
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')

我的系统上安装了pyodbc-3.0.6-py2.7-linux-i686.egg。使用Ubuntu 12.04 任何人都可以告诉我这里有什么问题

1 个答案:

答案 0 :(得分:2)

我从http://www.easysoft.com/developer/interfaces/odbc/linux.html

获取此信息
  

在这种情况下,unixODBC无法找到DSN“dsn_does_not_exist”,因此无法加载ODBC驱动程序。此错误的常见原因是:

     

您的USER或SYSTEM ini文件中不存在DSN“dsn_does_not_exist”。

     

DSN“dsn_does_not_exist”确实存在于已定义的ini文件中,但您省略了“Driver = xxx”属性,告诉unixODBC驱动程序管理器要加载哪个ODBC驱动程序。

     

odbcinst.ini文件中的“Driver = / path_to_driver”指向无效路径,指向可执行文件的路径,其中部分路径不可读/可搜索,或指向不可加载(可执行)的文件。

     

Driver = xxx条目指向一个共享对象,该对象不会导出必要的ODBC API函数(您可以使用unixODBC附带的dltest对此进行测试。

     

odbcinst.ini文件中由DRIVER = xxx定义的ODBC驱动程序依赖于动态链接器搜索路径上不存在的其他共享对象。在odbcinst.ini文件中的Driver =命名的驱动程序共享对象上运行ldd,查看无法找到哪些依赖共享对象。如果找不到某些,则需要定义LD_LIBRARY_PATH环境变量以定义任何相关共享对象的路径,或将这些路径添加到/etc/ld.so.conf并重新运行ldconfig。