c/c++语言开发共享从Python C扩展中导入和使用标准Python模块

我有用C编写的Python扩展模块。我想在这个C代码中使用标准Python模块之一,例如osshutil 。 怎么做到这一点最好?

     PyObject* os = PyImport_ImportModuleNoBlock("os"); if (os == NULL) return NULL; someattr = PyObject_GetAttrString(os, "someattr"); Py_DECREF(os); 

    如果只导入模块一次,例如,在init_yourmodule()函数中,则使用PyImport_ImportModule("os")

    别。

    相反,更改扩展模块以便它为Python提供服务,然后编写调用osshutil和您的模块的Python代码。

    事实上,对于os模块中的很多内容,编写本机C代码而不是调用Python可能更好。

    当然, 你可以从C代码调用Python模块 ,只是这样做对osshutil等低级模块来说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

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐