嵌入 python 并运行多次
Embedding python and running for multiple times
我正在使用boost::p ython嵌入python,这是我这样做的:
void runCode(){
Py_Initialize();
//boost::python code goes here and embedded python code runs
Py_Finalize();
}
它第一次运行良好,但是当它再次运行时,我收到此错误:
查找错误: 未知编码: utf8
并且代码未按预期运行,感谢任何帮助。
由于您没有得到专家的答案,因此我提供从处理类似问题中学到的知识。Python 在重新初始化支持方面存在问题。如果您由于某些错误而需要重新启动解释器,或者想要运行许多独立的解释器,这是不幸的。
一个问题是泄漏资源和内存(引用上面的链接):
错误和注意事项:动态加载的扩展模块由 Python 不会卸载。分配的少量内存 Python 解释器可能无法释放(如果发现泄漏,请报告 它)。内存被绑定在对象之间的循环引用中不是 释放。扩展模块分配的某些内存可能无法释放。 如果某些扩展的初始化例程,则可能无法正常工作 被调用不止一次;如果应用程序调用,则可能会发生这种情况 Py_Initialize() 和 Py_Finalize() 不止一次。
另一个问题是许多模块不能正确支持此功能,例如在此 SO 线程中可以看到。我认为这就是你面临的问题。
似乎大多数 Python 应用程序都可以解决此问题:
- 通过让发动机在专用过程中运行;
- 通过使用表示(公共解释器的)不同执行状态的子解释器
如果第二个适合您,请继续。
相关文章:
- IPC使用多个管道和分支进程来运行Python程序
- 是否有可能让 c++ dll 在后台运行 python 程序并让它填充向量图?如果是这样,如何?
- 在C++中运行 python 对象
- 从 c++ 运行 python 脚本时出现问题
- 在 boost::p ython 中的 python 对象中运行 python 代码
- 从 c++ 中运行 python 脚本,找不到模块
- 使用C++,如何在Qt Designer中运行python文件
- 如何从Qt C++项目运行Python函数
- 如何从 c++ 运行 python 程序
- 在构建之前,如何使Cmake在构建之前运行Python脚本,以生成用于构建中的项目的文件
- 使用一个 C 程序运行 python 脚本(不同的 python 版本)
- "Segmentation fault"使用 Cmake 在C++代码中运行 python 函数时
- 运行Python脚本同时嵌入C
- 如何从C++程序运行 python 脚本
- c++运行python代码导入自定义模块
- 使用Python.h在C++中运行Python脚本
- 从C++运行Python(VS2010,编译器v100)
- 如何在c++中运行Python文件
- 在gdb中运行python/c++混合代码
- Eclipse 找不到 libnppc.so.7.0 库来运行 python 代码,其中包含使用 CUDA 库的 Opencv 命令