小编nab*_*nab的帖子

如何重新初始化嵌入式Python解释器?

我正在努力在我们的测试套件应用程序中嵌入Python.目的是使用Python运行多个测试脚本来收集数据并生成测试报告.一次测试运行的多个测试脚本可以创建可在下一个脚本中使用的全局变量和函数.

该应用程序还提供在嵌入式解释器中导入的扩展模块,用于与应用程序交换某些数据.

但是用户也可以进行多次测试运行.我不想在多次测试运行之间共享那些全局变量,导入和交换的数据.我必须确保我以真实状态重新启动以控制测试环境并获得相同的结果.

我该如何重新初始化翻译?

我使用了Py_Initialize()和Py_Finalize(),但在第二次运行时,我第二次将我提供给解释器的扩展模块初始化时获得异常.文档警告不要多次使用它.

使用子解释器似乎与扩展模块初始化具有相同的警告.

我怀疑我的扩展模块初始化时出了问题,但我担心第三方扩展模块会出现同样的问题.

也许可以通过在其自己的进程中启动解释器来使其工作,以确保释放所有内存.

顺便说一句,我正在使用boost-python,它也使用Py_Finalize警告AGAINST!

有什么建议吗?

谢谢

c++ python embed boost boost-python

9
推荐指数
1
解决办法
2604
查看次数

标签 统计

boost ×1

boost-python ×1

c++ ×1

embed ×1

python ×1