Python ImportError:动态模块未定义初始化函数

Python ImportError:动态模块未定义初始化函数,python,c++,Python,C++,我试图复制以下教程 我在C++中的Python扩展如下所示: #include <Python.h> static PyObject* py_myFunction(PyObject* self, PyObject* args) { char *s = "Hello from C!"; return Py_BuildValue("s", s); } static PyObject* py_myOtherFunction(PyObject* self, PyObject* a

我试图复制以下教程

我在C++中的Python扩展如下所示:

#include <Python.h>

static PyObject* py_myFunction(PyObject* self, PyObject* args)
{
  char *s = "Hello from C!";
  return Py_BuildValue("s", s);
}

static PyObject* py_myOtherFunction(PyObject* self, PyObject* args)
{
  double x, y;
  PyArg_ParseTuple(args, "dd", &x, &y);
  return Py_BuildValue("d", x*y);
}

static PyMethodDef extPy_methods[] = {
  {"myFunction", py_myFunction, METH_VARARGS},
  {"myOtherFunction", py_myOtherFunction, METH_VARARGS},
  {NULL, NULL}
};

void initextPy(void)
{
  (void) Py_InitModule("extPy", extPy_methods);
}
在使用
python setup.py安装调用它之后,.so文件似乎位于正确的位置

但是,当我尝试将此扩展与
import extPy
一起使用时,会出现以下错误:

ImportError:动态模块未定义初始化函数


我错过了什么?谢谢帮助。

< p>因为函数<代码> iTeXPyP是C++函数,导致C++编译器无法识别。 您需要将函数标记为
extern“C”
以禁止名称损坏:

extern "C" void initextPy(void)
{
    ...
}

这就成功了。非常感谢。
extern "C" void initextPy(void)
{
    ...
}