【问题标题】:pyodbc: .mdb connection error on ubuntupyodbc:.mdb在ubuntu上的连接错误
【发布时间】:2012-07-23 06:57:35
【问题描述】:

我正在尝试访问位于我的系统上的 .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 谁能告诉我这里出了什么问题

【问题讨论】:

    标签: python sql pyodbc unixodbc


    【解决方案1】:

    我从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 文件中,但您省略了告诉 unixODBC 驱动程序管理器加载哪个 ODBC 驱动程序的“Driver=xxx”属性。

    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。

    【讨论】:

      猜你喜欢
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 2014-03-29
      相关资源
      最近更新 更多