进口并使用标准的Python模块Python的C扩展的内部 [英] Import and use standard Python module from inside Python C extension

查看:118
本文介绍了进口并使用标准的Python模块Python的C扩展的内部的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Python扩展模块用C写的我想在这个C code中的标准Python模块之一来使用,例如操作系统 shutil 。如何最好做到这一点?


解决方案

 的PyObject * OS = PyImport_ImportModuleNoBlock(OS);
如果(操作系统== NULL)
  返回NULL;
someattr = PyObject_GetAttrString(OSsomeattr);
Py_DECREF(OS);

如果您导入模块只有一次例如,在 init_yourmodule()函数然后使用 PyImport_ImportModule(OS)

I have Python extension module written in C. I want to use in this C code one of the standard Python modules, for example os or shutil. How is best to do this?

解决方案

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

If you import the module only once e.g., in init_yourmodule() function then use PyImport_ImportModule("os").

这篇关于进口并使用标准的Python模块Python的C扩展的内部的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆