1
테스트 서버에 연결하고 pyodbc를 사용하여 SQL 쿼리를 실행해야합니다. 이를 위해서는 먼저 ODBCINI 환경 변수를 설정해야합니다. 나는 그것을 파이썬 코드에서 서브 프로세스를 사용하여 포함 시키려고했다. 다음은 python에서 ODBCINI를 내보내는 하위 프로세스를 사용하는 중 오류가 발생 했습니까?
import subprocess
import pyodbc
bashCommand = "export ODBCINI=~/odbc.ini"
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE, shell=True)
pyodbc.pooling = False
conn = pyodbc.connect(DSN='test',autocommit=True,ansi=True)
cur = conn.cursor()
내가
Traceback (most recent call last):
File "my_si_web_impressions_bcookie_dealid.py", line 15, in <module>
conn = pyodbc.connect(DSN='tdwb',autocommit=True,ansi=True)
pyodbc.Error: ('IM002', '[IM002] [DataDirect][ODBC lib] System information file not found. Please check the ODBCINI environment variable. (0) (SQLDriverConnect)')
나는 그것이 서버에 연결할 수 있도록 그것은 ODBCINI 변수를 수출 din't 것을 의미 추측을 얻을 오류입니다. 누구든지 도와 줄 수 있습니까?
나는 이것을 시도했다. '#!는/usr/빈/ENV 파이썬 수입 pyodbc 수입 OS os.environ [ "ODBCINI"] = "~/ODBC.INI" pyodbc.pooling = 거짓 CONN = pyodbc.connect (DSN = '테스트', 자동 커밋 = 사실, ANSI = 참) CUR = conn.cursor()' 여전히 같은 오류 '역 추적 (가장 최근 통화 최종) : 파일 "temp.py", 8 호선, 에서 conn = pyodbc.connect (DSN = 'test', autocommit = True, ansi = True) pyodbc.Error : ('IM002', [IM002] [DataDirect] [ODBC lib] 시스템 정보 파일을 찾을 수 없습니다. ODBCINI 환경 변수 (0) (SQLDriverConnect) ')' –
shubham
인수에 os.expanduser를 호출해야 할 수도 있습니다. 또는 전체 경로로 지정합니다 (예 : "/home/foobar/odbc.ini" – deets
명백한 질문 : 파일이 존재합니까? 변수 설정 후에 "assert os.path.exists (os.environ [ 'ODBCINI'])"구문을 넣으십시오. – deets