等同于“ python -m module_name”(Python 2.7)的Python C-API

时间:2018-09-27 15:29:06

标签: cpython python-c-api

在看过Python C-API文档后,我无法找出仅给出模块名称(从c或c ++代码)执行python脚本的方法。

python -m module_name是否具有等效的C-API函数?

我正在使用嵌入C ++可执行文件中的Python 2.7。

1 个答案:

答案 0 :(得分:1)

这是通过标准库运行库模块(documentation; code)完成的。您只需要调用(未记录的)函数runpy._run_module_as_main(module_name)

Python解释器使用的C API code只是导入该模块,获取_run_module_as_main属性并调用它(即使用runpy作为Python模块)。