Ubuntu下编写python c++ 扩展

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错

<

div>
Ubuntu下python 的c++扩展编写 比 php简单很多

phpize 也不是很好用的一个东西

编写一个 python mod hello world

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#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 扩展函数 hello
PyObject* hello(PyObject* self, PyObject* args){
只能是这样的结构
PyArg_ParseTuple 处理参数

2 函数列表 helloMethods
static PyMethodDef helloMethods

3 初始化函数 inithello
init函数名

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

yum服务器上应该是
python-devel

1
2
3
4
5
6
7
8
9
10
all: hello.so hello.so: hello.o
    g++ shared hello.o o hello.so

hello.o: hello.cpp
    g++ fPIC c I /usr/include/python2.6/ o hello.o hello.cpp

clean:
    rm f hello.o hello.so

使用
写一个 test.py

<

div>

<

table cellspacing=”0″ cellpadding=”0″>

1
2
3
4
5
<

未经允许不得转载:演道网 » Ubuntu下编写python c++ 扩展

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册