问题1 pModule为空
c++调用Python时,要调用Python自定义函数,但是在调用 PyImport_ImportModule时,总是返回空。一直调用不成功,明明我已经通过pyList_append(syspath,目录路径)。但是就是找不到。正常用cmd脚本也能正常运行。
解决方案
// 初始化Python解释器
Py_Initialize();
// 添加包含自定义Python模块的目录到sys.path
std::string module_path = “/path/to/your/module”; // 替换为你的模块目录
std::string command = “import sys\nsys.path.append(’” + module_path + “’)”;
*PyRun_SimpleString(command.c_str()); // 导入Python模块 **
PyObject pModule = PyImport_ImportModule(“your_module_name”);
通过上面函数PyRun_SimpleString导入,而不是pyList_append函数导入。就能生效了。
如果是当前工作目录则添加这句:
PyRun_SimpleString(“sys.path.append(os.getcwd())”);
这里还有可能是依赖模块不存在,也会返回空。但是如果用命令行能正常调用。基本就排除import模块缺失的问题。



最低0.47元/天 解锁文章
4190

被折叠的 条评论
为什么被折叠?



