2017-09-05 46 views
1

我已經成功地在Mac OS X 10.12.6(塞拉利昂),但安裝了unixODBC 2.3.4當我嘗試運行pip install pyodbc我遇到了以下錯誤:Pyodbc找不到的「odbc」庫是什麼?

ld: library not found for -lodbc 

我認爲什麼它尋找的是與unixODBC一起安裝的libodbc.la:

test -z "/usr/local/lib" || .././install-sh -c -d "/usr/local/lib" 
/bin/sh ../libtool --mode=install /usr/bin/install -c libodbc.la '/usr/local/lib' 

這不是Pyodbc正在尋找的嗎?我如何才能找到併成功使用它?

回答

2

我已經下載了Pyodbc source(版本4.0.17)的副本,並通過檢查其setup.py來解決這個問題。這的確是找了unixODBC:

# The latest versions of OS X no longer ship with iodbc. Assume 
# unixODBC for now. 
settings['libraries'].append('odbc') 

這將導致ld-lodbc看起來爲/lib/usr/libodbc.dylib被調用。不幸的是,自El Capitan以來,正常安裝進入/lib/local/usr

我做了什麼來解決這個的話,是添加以下行setup.pysys.platform == 'darwin':部分:

# unixODBC make/install places libodbc.dylib in /usr/local/lib/ by default 
# (also OS/X since El Capitan prevents /usr/lib from being accessed) 
settings['library_dirs'] = [ '/usr/local/lib' ] 

然後我就可以用PIP從本地系統中,像這樣安裝的:

$ sudo pip install /path/to/pyodbc-4.0.17/ 

我將努力爲Pyodbc製作補丁,但這同時讓我受益匪淺。