我使用PyImport_ImportModule
导入C ++中的python模块。
现在我在不同的文件夹中有两个具有相同名称的Python模块文件,例如:
c:\Demo1\plugin.py and c:\Demo2\plugin.py
我在python中知道,可以使用
import Demo1.plugin as p1
import Demo2.plugin as p2
如何在C ++中使用PyImport_ImportModule
或其他方式实现?
我找到了一种解决方法:执行python c:\Demo1\plugin.py
并从中获取输出,但这不是一个好的解决方案。
答案 0 :(得分:1)
要仅导入文件,我将使用PyObject* PyImport_ImportModule(const char *name)
PyObject *p1 = PyImport_ImportModule( "Demo1.plugin" );
PyObject *p2 = PyImport_ImportModule( "Demo2.plugin" );
,如果您的路径设置正确,它应该可以正常工作。或者,您可以使用PyObject* PyImport_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 );
您可能需要将__init__.py
文件添加到Demo1
和Demo2
文件夹中。
答案 1 :(得分:0)
您可以通过这种方式包含它们
include "headers/myHeader.h"
include "../moreHeaders/myHeader.h"
只需确保在两个头文件中使用不同的名称空间来访问变量和函数