通过源码安装python第三方库时,经常会出现该库依赖的c/c++头文件、库找不到的情况,特别是自己编译安装的c/c++库时。比如leveldb,mysql等等。我今天安装leveldb的python库时,就遇到了这个情况。
通过setup.py的错误,定位到出错的setup.py代码行,如下:
ext_modules = [
Extension(
"plyvel._plyvel",
sources=["plyvel/_plyvel.cpp", "plyvel/comparator.cpp"],
libraries=["leveldb"],
extra_compile_args=["-Wall", "-g"]
通过上网查询,得知,setup.py的ext_modules参数的详细解释,所以,只用在Extension中加上两个参数,加完后:
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指定了搜索的动态库或者静态库的路径
以前经常遇到,现在解决了,留个学习笔记,方便自己以后查看
setup.py参数详解:http://blog.csdn.net/yiliumu/article/details/30841377
摘要:主要是库文件头文件文件不一致的问题。定义模块函数其中函数参数是模块自身,是传递的参数列表,返回值定义了一个整形数,这里会申请空间增加引用计数,交由来管理这个引用。
C++开发python windows版本的扩展模块示例测试环境介绍和准备测试环境:操作系统:windows10Python版本:3.7.0VS版本:vs2015社区版(免费)相关工具下载:VS版本vs2015社区版(免费)...
junfeng777
摘要:主要是库文件头文件文件不一致的问题。定义模块函数其中函数参数是模块自身,是传递的参数列表,返回值定义了一个整形数,这里会申请空间增加引用计数,交由来管理这个引用。
C++开发python windows版本的扩展模块示例测试环境介绍和准备测试环境:操作系统:windows10Python版本:3.7.0VS版本:vs2015社区版(免费)相关工具下载:VS版本vs2015社区版(免费)...
Meathill
摘要:所以,最大的好处就是将脚本语言的开发效率和的运行效率有机的结合起来。前面的文章提到一个实现的双数组的实现,它在中文分词新词发现等算法中的应用。本文以的封装实现来说明的使用。编译生成动态库编译生成的使用的,可以参考的编写。
如果觉得文章对你有帮助,你也可以访问老猿的个人博客https://www.yuanrenxue.com/
Python调用C/C++代码的利器除了boost_pyt...
摘要:起步由于在底层运算中会对每个运算做类型检查这就影响了运行的性能,而利用扩展可以避免这样的情况获得优越的执行性能,利用提供的,如宏,类型,函数等来编写扩展。测试更多关于模块扩展内容
由于python在底层运算中会对每个运算做类型检查, 这就影响了运行的性能,而利用扩展, 可以避免这样的情况, 获得优越的执行性能,利用Python提供的C API,如宏,类型,函数等来编写扩展。
前期...
Aklman
阅读 2045·2021-09-28 09:35
阅读 3538·2021-09-01 11:04
阅读 770·2020-06-22 14:41
阅读 2931·2019-08-30 15:55
阅读 2467·2019-08-30 15:43
阅读 2260·2019-08-26 13:54
阅读 2417·2019-08-26 13:48