Boost.python学习笔记(1)

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">最近工作上需要把python embed到legacy的APP里面去,用了下python/C API, 感觉写起来很麻烦,stackoverflow上看了下,大家都推荐用boost做这个事情,所以这里学习一下。</span>


因为自己用的是mac, 10.10编译起来很麻烦,最后弄了个virtual machine,在fedora上编译

首先要安装boost:


yum install boost
yum install boost-dev


然后尝试编译给的例子:

#include <boost/python.hpp>

using namespace boost::python;

int main( int argc, char ** argv ) {
  try {
    Py_Initialize();

    object main_module((
      handle<>(borrowed(PyImport_AddModule("__main__")))));

    object main_namespace = main_module.attr("__dict__");

    handle<> ignored(( PyRun_String( "print \"Hello, World\"",
                                     Py_file_input,
                                     main_namespace.ptr(),
                                     main_namespace.ptr() ) ));
  } catch( error_already_set ) {
    PyErr_Print();
  }
}

编译命令:

g++ -I /usr/include/python2.7/ -I /usr/include/ -L /usr/lib/ -lboost_python -lpython2.7 test.C 

hello world就可以工作了,其实python/C API 比这个要简单的多,后面学习中会体现出他的强大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值