2017-09-05 43 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制作补丁,但这同时让我受益匪浅。

相关问题