[英]How to import multiple python modules with same name with C++
我使用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
並從中獲取輸出,但這不是一個好的解決方案。
為了只導入一個文件,我會使用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
文件夾中。
您可以以這種方式包含它們
include "headers/myHeader.h"
include "../moreHeaders/myHeader.h"
只要確保在兩個頭文件中使用不同的命名空間來訪問變量和函數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.