利用C++ Boost编写扩展Python模块
来源:互联网 发布:詹姆斯07总决赛数据 编辑:程序博客网 时间:2024/04/30 19:53
Python很强大,但已有的模块可能满足不了人民日益增长的物质文化需求,于是有时需要编写扩展模块进行完善。
可行的方案有很多:SWIG、Weave、ctypes、BOOST……
BOOST无疑是开发最快的一种方案。下面介绍下最简单的C++ helloworld程序如何变为Python的一个模块。
1. 安装Python、Boost
这里用Linux环境。Python和Boost都用源码安装,网址为:
Python2.6:https://www.python.org
BOOST1.57.0:http://sourceforge.net/projects/boost/?source=typ_redirect
2. 编写helloworld.cpp
#define BOOST_PYTHON_SOURCE#include <boost/python.hpp>#include <iostream>using namespace std;using namespace boost::python;void hello_func(){ cout<<"hello boost python"<<endl;}BOOST_PYTHON_MODULE(boostpy){ def("Hello", hello_func, "Function 's targets...");}
3. 编译为动态库
命令行中执行:
g++ -shared -o boostpy.so -fPIC -I/YourPythonIncludePath/ helloworld.cpp -lpython2.6 -lboost_python
生成了动态链接库boostpy.so
4. Python环境中调用Hello
>>> import boostpy>>> boostpy.Hello()hello boost python>>>help(boostpy)Help on module boostpy:NAME boostpyFILE /...../boostpy.soFUNCTIONS Hello(...) Hello() -> None : Function 's targets... C++ signature : void Hello()(END)
总结:这里只做了个最简单的调用,没有参数传递的问题。后面会继续研究怎样在C++和Python之间共享数据。
0 0
- 利用C++ Boost编写扩展Python模块
- 利用C++ Boost编写扩展Python模块
- 利用C++ Boost编写扩展Python模块
- 用C语言编写Python扩展模块
- 利用boost.python 扩展python
- 怎样编写python脚本的C扩展模块
- 扩展Python__在python脚本中使用其他语言(c/c++/java/c#)编写的模块
- Python的C扩展模块的编写(Anaconda+VS2013,python3.5和c++)
- 利用Boost.Python将C++代码封装为Python模块
- 利用Boost.Python将C++代码封装为Python模块
- 利用boost.python 通过c++语言来扩展python (python.boost)
- 【Python】用C语言编写Python模块
- 扩展python 用C语言编写python扩展代码
- 使用VS2010编写Python的C扩展
- 使用C/C++编写Python扩展库
- 用VS 编写 Python C扩展
- python c模块扩展及PyIntObj对象
- 在python中扩展c语言模块
- (十)Z-Stack1.4.3-1.2.1中事件触发的方式
- HTTP长连接实现“服务器推”的技术快速入门及演示示例
- C++项目参考解答-太乐了
- property_get/property_set
- Java中的强制类型转换
- 利用C++ Boost编写扩展Python模块
- 【索引】Codeforces Round #276
- 自平衡分布式缓存解决方案
- 项目管理(1)
- 云计算设计模式(十八)——重试模式
- 图形学:名词解释
- 飘逸的python - yield简明教程
- ie主页被篡改(修改注册表)
- Google 工程师二三事