编译器找不到Py_InitModule()..是否已弃用,如果可以,我应该使用什么?

编译器找不到Py_InitModule()..是否已弃用,如果可以,我应该使用什么?,第1张

编译器找不到Py_InitModule()..是否已弃用,如果可以,我应该使用什么?

您拥有的代码在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中构建扩展模块。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5673490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存