Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.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
在C++中嵌入Python:解释器在执行过程中的持久性 使用PyIa初始化,我们可以在C++程序中启动Python解释器。 但是,由于函数不返回任何内容,我们不能在不同的程序中使用相同的解释器。 在一个C++程序中有没有调用Pyl初始化的方法,让解释器持久化,在不同的C++程序中使用它,而不调用Pyl初始化?_Python_C++_C - Fatal编程技术网

在C++中嵌入Python:解释器在执行过程中的持久性 使用PyIa初始化,我们可以在C++程序中启动Python解释器。 但是,由于函数不返回任何内容,我们不能在不同的程序中使用相同的解释器。 在一个C++程序中有没有调用Pyl初始化的方法,让解释器持久化,在不同的C++程序中使用它,而不调用Pyl初始化?

在C++中嵌入Python:解释器在执行过程中的持久性 使用PyIa初始化,我们可以在C++程序中启动Python解释器。 但是,由于函数不返回任何内容,我们不能在不同的程序中使用相同的解释器。 在一个C++程序中有没有调用Pyl初始化的方法,让解释器持久化,在不同的C++程序中使用它,而不调用Pyl初始化?,python,c++,c,Python,C++,C,编辑:更具体地说,是否有一种方法可以获取python解释器的实例,并将其作为参数传递给另一个执行,然后使用它运行python脚本。否。CPython解释器本身不是这样工作的。没有明显的解释器对象,而是一组带有有状态API的浮动全局变量。更糟糕的是,Python代码可以加载任意的其他库,这些库的状态通常肯定不能持久化 您可以做的是对现有变量进行pickle处理。这有时会把你带到一个很近的地方。这实际上不是一个托管问题,而是一个Python问题。当然,您可以确保托管Python的C代码确保在真正的P

编辑:更具体地说,是否有一种方法可以获取python解释器的实例,并将其作为参数传递给另一个执行,然后使用它运行python脚本。

否。CPython解释器本身不是这样工作的。没有明显的解释器对象,而是一组带有有状态API的浮动全局变量。更糟糕的是,Python代码可以加载任意的其他库,这些库的状态通常肯定不能持久化


您可以做的是对现有变量进行pickle处理。这有时会把你带到一个很近的地方。这实际上不是一个托管问题,而是一个Python问题。当然,您可以确保托管Python的C代码确保在真正的Python代码完成执行后执行序列化步骤。类似的东西可能是一个起点。

如果它是一个不同的程序,根据定义,它不是同一个解释器实例。没有C/C++程序。决定你使用哪种语言。如果是C,则删除C++标签。