運(yùn)行環(huán)境
Mac OS 10.12.6
python 3.6.2
pip 9.0.1
安裝步驟
下載所需odbc driver。由于筆者安裝ODBC是為了連接Vertica, 此文以Vertica 7.2.x ODBC為例. 進(jìn)入obbc driver下載頁(yè)面, 找到對(duì)應(yīng)版本,下載并安裝pkg文件,默認(rèn)配置安裝即可。
-
安裝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
報(bào)錯(cuò)
Error:
src/pyodbc.h:56:10: fatal error: 'sql.h' file not found
#include <sql.h>
^~~~~~~
1 error generated.
error: command 'clang' failed with exit status 1
解決辦法
使用unixodbc Manager替代Apple的 iODBC Driver Manager
$ brew install unixodbc & pip3 install -U pyodbc
- 連接報(bào)錯(cuò)
Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")
解決辦法
應(yīng)該是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下面,我的調(diào)用了/usr/local/etc/odbcinst.ini,打開發(fā)現(xiàn)是空的,而/etc/odbcinst.ini不空,將兩個(gè)文件從/etc復(fù)制到/usr/local/etc即可。
$ cp /etc/odbc.ini /etc/odbcinst.ini /usr/local/etc/