簡體   English   中英

如何用C++導入多個同名的python模塊

[英]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文件添加到Demo1Demo2文件夾中。

您可以以這種方式包含它們

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

只要確保在兩個頭文件中使用不同的命名空間來訪問變量和函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM