2014-02-26 1 views
4

몇 시간 동안이 문제를 돌았습니다. pyodbc를 통해 데이터베이스에 연결할 수 없지만 tsql과 isql을 모두 연결하여 연결할 수 있습니다.Pyodbc 연결 오류이지만 isql 작동

import pyodbc 

pyodbc.connect("DRIVER={dev};SERVER=epdbdev01;DATABASE=something;USER=epnet2;OPTION=3;") 

내가이 얻을 : 내가 잘 isql을 통해 연결할 수

Error: ('00000', '[00000] [iODBC][Driver Manager]dlopen({dev}, 6): image not found (0) (SQLDriverConnect)') 

, 그리고 지금 간단하게 (아마도 잘못,하지만 내 지점을 보여주는) 시도하고

재미를 위해 :

내가 잘못된 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는 SYM 내 사제가 다음과 같이 내 홈 디렉토리에 설치됩니다에서 연결되어 고민 내 ODBC.INI 및 ODBCINST.INI 파일 :

ODBC.INI

[dev] 
Driver = FreeTDS 
Description = please work 
ServerName = epdbdev01 
UID = user 
PWD = pass 

odbcinst

[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 

.INI 어딘가에 난 그냥 누락하는 드라이버 정보를 찾기 pyodbc합니까? 나는이 잡초에 있는데 아마도 뭔가를 넘어 섰을 것이다.하지만 isql이 작동한다면 나는 pyodbc가 그 같은 연결 정보를 피기 백하는 것을 상상할 것이다.

답변

1

결국 odbc.iniodbcinst.ini/etc에 넣었습니다. 또한 --with-unixodbc 명령을 사용하여 freetdshomebrew에서 다시 설치했는데 성공했습니다. 이 blog by JD Long을 다섯 번째로 읽으면 iODBCunixODBC의 연결을 끊는 데 도움이되었습니다.