經過源碼安裝python第三方庫時,常常會出現該庫依賴的c/c++頭文件、庫找不到的狀況,特別是本身編譯安裝的c/c++庫時。好比leveldb,mysql等等。我今天安裝leveldb的python庫時,就遇到了這個狀況。python
經過setup.py的錯誤,定位到出錯的setup.py代碼行,以下:mysql
ext_modules = [ Extension( 'plyvel._plyvel', sources=['plyvel/_plyvel.cpp', 'plyvel/comparator.cpp'], libraries=['leveldb'], extra_compile_args=['-Wall', '-g'] ) ]
經過上網查詢,得知,setup.py的ext_modules參數的詳細解釋,因此,只用在Extension中加上兩個參數,加完後:c++
ext_modules = [ Extension( 'plyvel._plyvel', sources=['plyvel/_plyvel.cpp', 'plyvel/comparator.cpp'], libraries=['leveldb'], extra_compile_args=['-Wall', '-g'], include_dirs = ['/Users/simon/Downloads/leveldb-1.15.0/include'], library_dirs = ['/Users/simon/Downloads/leveldb-1.15.0'] ) ]
include_dirs指定了搜索的頭文件路徑,library_dirs指定了搜索的動態庫或者靜態庫的路徑sql
之前常常遇到,如今解決了,留個學習筆記,方便本身之後查看學習
setup.py參數詳解:http://blog.csdn.net/yiliumu/article/details/30841377.net