gpt4 book ai didi

python - 如何使用 C++ 导入多个具有相同名称的 python 模块

转载 作者:行者123 更新时间:2023-11-30 04:46:32 25 4
gpt4 key购买 nike

我使用 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 文件夹。

关于python - 如何使用 C++ 导入多个具有相同名称的 python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56689051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com