我有用C编写的Python扩展模块。我想在这个C代码中使用标准Python模块之一,例如os
或shutil
。 怎么做到这一点最好?
PyObject* os = PyImport_ImportModuleNoBlock("os"); if (os == NULL) return NULL; someattr = PyObject_GetAttrString(os, "someattr"); Py_DECREF(os);
如果只导入模块一次,例如,在init_yourmodule()
函数中,则使用PyImport_ImportModule("os")
。
别。
相反,更改扩展模块以便它为Python提供服务,然后编写调用os
, shutil
和您的模块的Python代码。
事实上,对于os
模块中的很多内容,编写本机C代码而不是调用Python可能更好。
当然, 你可以从C代码调用Python模块 ,只是这样做对os
和shutil
等低级模块来说shutil
。 说到shutil
的文件复制方法,在C代码中重新实现它们是微不足道的。 事实上,在Windows上,复制文件是通过调用操作系统来完成的,因此用C编写的代码也不多。
如果Python模块是用C语言编写的,您甚至可以只复制所需方法的代码。
以上就是c/c++开发分享从Python C扩展中导入和使用标准Python模块相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/560177.html