Connect database through odbc driver with python

1672 ワード

実行環境
Mac OS 10.12.6 python 3.6.2 pip 9.0.1
インストール手順
  • 必要なodbc driverをダウンロードします.筆者がODBCをインストールのはVerticaに接続するためであるため、この文書はVertica 7.2である.x ODBCを例とする.obbc driverダウンロードページに入り、対応するバージョンを見つけ、pkgファイルをダウンロードしてインストールし、デフォルトでインストールすればよい.
  • pyodbc
     $pip3 install --upgrade pyodbc
    
  • をインストール
  • python接続Vertica
     import pyodbc        
     conn = pyodbc.connect(driver='Vertica', server= ServerAddress, Port=Port,database='', uid=UserID, pwd=password)
    
  • インストールの問題
  • pip install pyodbcエラー
  • Error: src/pyodbc.h:56:10: fatal error: 'sql.h' file not found #include ^~~~~~~ 1 error generated. error: command 'clang' failed with exit status 1
    解決策AppleのiDBC Driver Managerの代わりにunixodbc Managerを使用する
        $ brew install unixodbc & pip3 install -U pyodbc
    
  • 接続エラー
  • Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")
    解決策はodbc driverのプロファイルが構成されていないことです.
        $ odbcinst -j
    

    構成の戻り値
    unixODBC 2.3.0 DRIVERS............:/usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES:/usr/local/etc/odbc.ini FILE DATA SOURCES..:/usr/local/etc/ODBCDataSources USER DATA SOURCES..:/usr/local/etc/odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
    通常odbcinst.initとodbc.Initは/etcの下に置いて、私の呼び出しは/usr/local/etc/odbcinst.ini、開くと空で、/etc/odbcinst.iniは空ではありません.2つのファイルを/etcから/usr/local/etcにコピーすればいいです.
      $ cp /etc/odbc.ini /etc/odbcinst.ini /usr/local/etc/