经过源码安装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