ubuntu下编写pythonc++扩展

#include “python.h”pyobject* hello(pyobject* self, pyobject* args){ const char * str; if (! pyarg_parsetuple(args, “s”, &str)) return null; return py_buildvalue(“s”,str);}static pymethoddef hellomethods[] = { {“hello”, hello, meth_varargs, “hello comments”}, {null, null, 0, null}};pymodinit_func inithello(void){ py_initmodule(“hello”, hellomethods);}

一个python mod 因该有几个部分1 扩展函数 hellopyobject* hello(pyobject* self, pyobject* args){只能是这样的结构pyarg_parsetuple 处理参数

2 函数列表 hellomethodsstatic pymethoddef hellomethods

3 初始化函数 inithelloinit函数名

编译在 ubuntu 下需要安装python-devsudo apt-get install python-dev

yum服务器上应该是python-devel

#!/usr/bin/env pythonimport helloprint hello.hello(‘world’)

python 运行时候 会加载当前目录的.so

发表评论