如何使用C+;导入多个同名python模块+;

如何使用C+;导入多个同名python模块+;,python,c++,Python,C++,我使用导入Python模块,在C++中。 现在,我在不同的文件夹中有两个同名的Python模块文件,如: c:\Demo1\plugin.py and c:\Demo2\plugin.py 我知道在python中,可以使用 import Demo1.plugin as p1 import Demo2.plugin as p2 如何在C++中使用 PyIngulyIdultMult/或其他方式? 我找到了一个解决方法:执行python c:\Demo1\plugin.py并从中获取输出,但这不

我使用导入Python模块,在C++中。

现在,我在不同的文件夹中有两个同名的Python模块文件,如:

c:\Demo1\plugin.py and c:\Demo2\plugin.py
我知道在python中,可以使用

import Demo1.plugin as p1
import Demo2.plugin as p2

如何在C++中使用<代码> PyIngulyIdultMult/<代码>或其他方式?


我找到了一个解决方法:执行python c:\Demo1\plugin.py并从中获取输出,但这不是一个好的解决方案。

您可以用这种方式包含它们

include "headers/myHeader.h"
include "../moreHeaders/myHeader.h"

只需确保在两个头文件中使用不同的名称空间来访问变量和函数

即可导入我将使用的文件
PyObject*PyImport\u ImportModule(const char*name)

如果你的路径设置正确的话,它应该可以正常工作。或者,您可以使用
PyObject*PyImport\u Import(PyObject*name)
,但是您必须管理名称的引用计数

PyObject *s1 = PyUnicode_FromString( "Demo1.plugin" );
PyObject *s2 = PyUnicode_FromString( "Demo2.plugin" );

PyObject *p1 = PyImport_Import( s1 );
PyObject *p2 = PyImport_Import( s2 );

Py_DECREF( s1 );
Py_DECREF( s2 );

您可能需要在
Demo1
Demo2
文件夹中添加一个
\uuuu init\uuuuuuuuupy
文件。

您所说的“导入”是什么意思?你是说<代码> >包含< /Cord>?不,我是指C++使用API pyNIPIONIN模块导入Python模块文件并调用他们的函数抱歉,我改变了问题的标题,我是说C++中的Python模块,请再阅读我的问题,谢谢你,它解决了我的问题,我使用<代码> py进口(模块)(DeMO1.Puxin);代码>之前,但我的路径设置错误,因此失败。现在我设置了正确的sys.path,这两种解决方案对我都有效
PyObject *s1 = PyUnicode_FromString( "Demo1.plugin" );
PyObject *s2 = PyUnicode_FromString( "Demo2.plugin" );

PyObject *p1 = PyImport_Import( s1 );
PyObject *p2 = PyImport_Import( s2 );

Py_DECREF( s1 );
Py_DECREF( s2 );