用C编写的简单Python扩展

3

我正在尝试创建一个简单的Python扩展模块。我将以下代码编译成了一个transit.so动态模块。

#include <python2.6/Python.h>

static PyObject*
_print(PyObject* self, PyObject* args)
{
    return Py_BuildValue("i", 10);
}

static PyMethodDef TransitMethods[] = {
    {"print", _print, METH_VARARGS, ""},
    {NULL, NULL, 0, NULL}
};

PyMODINIT_FUNC
inittransit(void)
{
    Py_InitModule("transit", TransitMethods);
}

然而,尝试从Python调用此函数

import transit
transit.print()

我收到了一个错误信息。
  File "test.py", line 2
    transit.print()
                ^
SyntaxError: invalid syntax

我的代码有什么问题?
1个回答

4

我猜测这与将关键字用作函数名有关。我刚刚在一个模块中尝试定义一个print()函数以进行测试,结果出现了相同类型的错误。尝试轻微更改此函数的名称,看看是否可以解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接