2012-07-23 17 views
0

我試圖訪問位於我係統上的.mdb文件。我的代碼看起來S形這樣的:pyodbc:ubuntu上的.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 可以在任何一個SYA我這裏有什麼問題

回答

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」指向無效路徑,指向可執行文件的路徑,其中部分路徑不可讀/可搜索或無法加載(可執行文件) 。

駕駛員= XXX條目指向一個共享對象不導出必要的ODBC API函數(可以用dltest附帶的unixODBC。

通過在ODBCINST DRIVER = XXX定義的ODBC驅動程序進行測試。 ini文件依賴於不在動態鏈接程序搜索路徑上的其他共享對象對odbcinst.ini文件中由Driver =命名的驅動程序共享對象運行ldd,並查看哪些依賴共享對象無法找到。您需要定義您的LD_LIBRARY_PATH環境變量以定義到任何相關共享對象的路徑或將這些路徑添加到/etc/ld.so.conf並重新運行ldconfig。