2011-10-24 4 views
3

저는 org-wide 중앙 장착형 드라이브에 unixODBC가 설치된 환경에서 작업하고 있지만 우리 (실제 개발자)는 드라이버 나 데이터 소스를 설치할 수 없습니다. 그것은 모두 거꾸로이지만 나는 그걸로 살아야만합니다.다른 unixODBC 설치 사용

지금이 유닉스 enviro에서 mssql 2005 서버에 연결하는 Python 응용 프로그램을 빌드하려고합니다. 그래서 분명히 일부 sql 드라이버가 필요합니다!

나는 완전히 제어 할 수있는 드라이브 부분에 unixODBC를 다시 설치하여 사전 설치된 unixODBC에 대한 나의 액세스 부족을 피할 수있었습니다. 나는 freeTDS를 설치하고 isql을 사용하여 서버에 성공적으로 연결할 수 있도록 모든 것을 구성했습니다. - 훌륭합니다!

import pyodbc 
pyodbc.connect("DSN=<dsn_name>;UID=...;PWD=...", autocommit=True) 

내가 pyodbc이기 때문에이 가정 내가

('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)') 

를 얻을 : 내가 좋아하는 (어떤이 pyodbc을 사용) 내 파이썬 프로그램에서 선을 실행할 때

지금 유일한 문제는, 원래 unixODBC 설치를 찾고 내 로컬 설치를 찾지 않습니다. 그래서 궁금 해서요 : 내가 대신

답변

6

pyodbc 사용자 정의 설정에서 설치가 까다 롭습니다 주 드라이브에 설치된 하나의 설치 내 로컬 인 unixODBC을 찾아 내 스크립트를 구성 할 방법

합니다. 당신은 get_compiler_settings 기능에

settings['include_dirs'] = ['/opt/local/include'] 
settings['library_dirs'] = ['/opt/local/lib'] 

같은 것을 추가하여 사용자 정의 위치에서 인 unixODBC를 찾기 위해 setup.py 스크립트를 편집해야합니다.

+0

당신이 조금 정교한 수 있을까요? 나는 setup.py를 사용해서 결코 혼란에 빠지진 않았으며, 나는 내가하는 일을 잘 모르고있다. – matrix10657

+0

[pyodbc 2.1.11] (http://code.google.com/p/pyodbc/source/browse/setup.py?name=2.1.11)을 사용한다고 가정하고, 142 행 아래에 언급 된 행을 추가하십시오 경로가 사용자 정의 설치 디렉토리를 가리키는 지 확인하십시오. – tuomur

+0

Thx @eclaird, Apples에 iODBC가 포함 된 OS X에서 동일한 문제가 발생했습니다. 연결해야하는 MSSQL 버전에서는 작동하지 않습니다. 나는 다른 ODBC 설치에 대해 빌드 pyodbc지고 문제가 있었지만, 귀하의 솔루션은 매력처럼 작동했습니다 =) – Justin

0

문제는 아마도 글로벌 ini 파일을보고 있기 때문일 수 있습니다. 당신은 위의 답변 ODBCSYSINI=/path/to/location/of/inifiles

2

감사를 정의하여이 odbc.iniodbcinst.ini 파일을 찾는 위치를 설정할 수 있습니다 - 그것은 기본이 iODBC를 사용하지 않는 그에게 setup.py에 get_compiler_settings을 편집 저를 얻었다. 나 (OS X 10.9, pyodbc 3.0.7) 근무 무엇

했다 :

elif sys.platform == 'darwin': 
    # OS/X now ships with iODBC. 
    #settings['libraries'].append('iodbc') 

    # but I don't want to use iodbc, I want to use brewed unixodbc 
    settings['libraries'].append('odbc')