python调用c++扩展模块
来源:互联网 发布:雅马哈电钢琴 知乎 编辑:程序博客网 时间:2024/05/19 16:35
昨天完成了用python调用c++,在这里做个记录。
整个操作流程如下:
1.去http://www.boost.org/下载boost包,我用的是boost_1_48_0.zip
2.解压,进入目录找到bootstrap.bat 脚本,并执行,会在相同文件夹生成 bjam.exe文件
3.打开VS2005 在tools->...command prompt,定位到boost主目录下,执行bjam --with-python --build-type=complete stage
编译成功后会在 ...\boost_1_48_0\stage\lib 下找到python所使用的boost库包括.lib 和 .dll
4.在vs2005中新建一个空的动态链接库工程,设置工程的属性,把boost的库路径 ...\boost_1_48_0\stage\lib
python库路径 ...\Python27\libs (python安装目录)加上;把头文件路径 ...\Python27\include 和 ...\boost_1_48_0 加上
5.新建hello.cpp文件,把下面代码拷进去
#include <boost/python/module.hpp>#include <boost/python/def.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
6.编译,生成,把输出的dll改名为hello_ext.pyd,
也可以在工程属性中设置输出名为hello_ext.pyd
注意:必须与BOOST_PYTHON_MODULE(hello_ext)中模块名相同(我用的是hello_ext)
7.最后把hello_ext.pyd和boost_python-vc90-mt-gd-1_48.dll
拷贝到python的工作目录下,不过重新验证一下好像boost_python-vc90-mt-gd-1_48.dll不拷也可以
8.在python 工作目录下新建hello.py编写如下代码:
import hello_ext
hello_ext.greet()
执行就可以了。
参考:http://hi.baidu.com/zhouhanqing/blog/item/cfeb8c3c0f6b66cf9e3d62f4.html
- python调用c++扩展模块
- PYTHON 调用 C/C++模块
- 用C语言编写Python扩展模块
- python c模块扩展及PyIntObj对象
- 在python中扩展c语言模块
- C语言实现的Python扩展模块
- 使用c语言来扩展python模块
- 快速实现python c扩展模块
- 快速实现python c扩展模块
- 快速实现python c扩展模块
- 快速实现python c扩展模块
- 快速实现python c扩展模块
- 写python的扩展模块(C)
- C调用python,如何调用pymongo模块
- 【Python】使用C语言来扩展Python模块
- python调用C模块的方法
- Python使用bitey调用C模块
- Python与C/C++ 模块相互调用
- 迁移学习
- 引用Sheet及单元格的方法(Indirect函数)
- VC简单备忘录项目(3)--封装ADO
- 面试1
- mysql导入及导出数据
- python调用c++扩展模块
- 百万数据查询优化技巧三十则(完美解决方案)
- asp.net 皮肤文件的创建以及使用
- 【JAVA】Java中 File f=new File(String parent ,String child)
- 搞ACM的伤不起
- vi中搜索关键字
- (64位)ubuntu 11.10编译android 2.3准备的工作
- How to Change the Default System Fonts
- 硕士论文查重原理与快速通过的七大方法