Pyodbc连接错误,但isql工作

问题描述:

我已经围绕这一整个小时。我无法通过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会搭载相同的连接信息,但现在显然。

最后我把odbc.iniodbcinst.ini设为/etc。另外,我使用--with-unixodbc命令从homebrew重新安装了freetds,它工作正常。第5次读这个blog by JD Long帮我得到了iODBC vs unixODBC断开。