您拥有的代码在Python 2.x中可以正常工作,但
Py_InitModule在Python
3.x中不再使用。如今,您创建了一个
PyModuleDef结构,然后将对它的引用传递给
PyModule_Create。
结构如下:
static struct PyModuleDef cModPyDem ={ PyModuleDef_HEAD_INIT, "cModPyDem", "", -1, module_methods};
然后您的
PyMODINIT_FUNC函数将如下所示:
PyMODINIT_FUNC PyInit_cModPyDem(void){ return PyModule_Create(&cModPyDem);}
请注意,
PyMODINIT_FUNC函数的名称必须采用以下形式:
PyInit_<name>where
<name>是模块的名称。
我认为如果您阅读Python
3.x文档中的Extending,那将是值得的。它详细介绍了如何在现代Python中构建扩展模块。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)