我已經圍繞這一整個小時。我無法通過pyodbc連接到數據庫,但我可以同時使用tsql和isql來連接。Pyodbc連接錯誤,但isql工作
我現在只是想(這可能是錯誤的,但了我的觀點):
import pyodbc
pyodbc.connect("DRIVER={dev};SERVER=epdbdev01;DATABASE=something;USER=epnet2;OPTION=3;")
,我得到這個:
Error: ('00000', '[00000] [iODBC][Driver Manager]dlopen({dev}, 6): image not found (0) (SQLDriverConnect)')
我可以通過ISQL就好了連接,併爲了好玩:
$ isql -v dev_fail user pass
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
$ isql -v dev user pass
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
你可以看到,如果我使用了無效的DSN,我可以一個錯誤,並用正確的DSN我在。現在,不正確的DSN的錯誤與我用pyodbc得到的錯誤是一樣的,所以看起來有些東西是交錯的。
.freetds.conf -> /usr/local/Cellar/freetds/0.91/etc/freetds.conf
.odbc.ini -> /usr/local/Cellar/unixodbc/2.3.2/etc/odbc.ini
.odbcinst.ini -> /usr/local/Cellar/unixodbc/2.3.2/etc/odbcinst.ini
最後:
我這個,我resintalled事情了幾次,現在我的ODBC.INI和ODBCINST.INI的符號鏈接從我的自制軟件安裝到我的主目錄,如下掙扎,我的ODBC.INI和ODBCINST.INI文件:
ODBC.INI
[dev]
Driver = FreeTDS
Description = please work
ServerName = epdbdev01
UID = user
PWD = pass
ODBCINST的.ini
[FreeTDS]
Description = FreeTDS
Driver = /usr/local/Cellar/freetds/0.91/lib/libtdsodbc.so
Setup = /usr/local/Cellar/freetds/0.91/lib/libtdsodbc.so
client charset = utf-8
是否pyodbc查找驅動程序信息的地方,我只是失蹤?我在這個雜草中,我可能已經跨過了一些東西,但如果isql的作品,我會想象pyodbc會搭載相同的連接信息,但現在顯然。