从嵌入式Python中的路径导入Python模块

2024-09-25 02:34:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在C++中使用嵌入式Python。如果my_module.py是一个文件,我可以像这样导入一个模块:

PyObject* pName PyUnicode_DecodeFSDefault("my_module");
PyObject* pModule = PyImport_Import(pName);

这在大多数情况下都能很好地工作,除了我无法控制将包含模块的文件放在何处;它必须与可执行文件位于同一目录中。这是我的用例的一个问题。我想能够使用任何路径的文件和导入模块从那里。然而,我似乎可以找到一种方法来做到这一点


Tags: 模块文件pyimport目录可执行文件my情况
1条回答
网友
1楼 · 发布于 2024-09-25 02:34:26

假设您已经在某个时候调用了Py_Initialize,您应该能够执行以下操作:

PyObject* sysPath = PySys_GetObject((char*)"path");
PyList_Append(sysPath, (PyUnicode_FromString(pathToModuleDirectory)));

其中pathToModuleDirectory是一个字符串,包含您希望能够导入的模块所在目录的路径。现在,您应该能够按照问题中描述的方式导入模块

相关问题 更多 >