Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从嵌入式Python中的路径导入Python模块 我在C++中使用嵌入式Python。我可以像这样导入模块,因为my_module.py是一个文件: PyObject* pName PyUnicode_DecodeFSDefault("my_module"); PyObject* pModule = PyImport_Import(pName);_Python_C++_Python Embedding - Fatal编程技术网

从嵌入式Python中的路径导入Python模块 我在C++中使用嵌入式Python。我可以像这样导入模块,因为my_module.py是一个文件: PyObject* pName PyUnicode_DecodeFSDefault("my_module"); PyObject* pModule = PyImport_Import(pName);

从嵌入式Python中的路径导入Python模块 我在C++中使用嵌入式Python。我可以像这样导入模块,因为my_module.py是一个文件: PyObject* pName PyUnicode_DecodeFSDefault("my_module"); PyObject* pModule = PyImport_Import(pName);,python,c++,python-embedding,Python,C++,Python Embedding,这在大多数情况下都能很好地工作,除了我无法控制将包含模块的文件放在何处;它必须与可执行文件位于同一目录中。这是我的用例的一个问题。我想能够使用任何路径的文件和导入模块从那里。但是,我似乎可以找到一种方法来完成它。假设您已经在某个时候调用了Py\u Initialize,您应该能够执行以下操作: PyObject* sysPath = PySys_GetObject((char*)"path"); PyList_Append(sysPath, (PyUnicode_FromSt

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

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

PyObject* sysPath = PySys_GetObject((char*)"path");
PyList_Append(sysPath, (PyUnicode_FromString(pathToModuleDirectory)));
其中
pathToModuleDirectory
是一个字符串,其中包含您希望能够导入的模块所在目录的路径。现在,您应该能够按照问题中描述的方式导入模块