将数据从python应用程序传递到运行的c++;应用 我用Python编码了应用程序,另一个用C++编写。在Python应用程序的中间,我需要运行C++应用程序,通过它的一些输入并接收输出。我已经知道我可以用Python调用C++应用程序,但是因为C++程序每次调用它都需要做一些初始计算,这使得我的程序非常慢。所以我想要的是: 将我的C++应用程序放在无限的while循环中,并保持它运行。然后在我的Python应用程序中,每当我需要一个C++应用程序的调用时,只需传递数据并获得输出。这样我就可以避免每次需要打电话时重复初始状态

将数据从python应用程序传递到运行的c++;应用 我用Python编码了应用程序,另一个用C++编写。在Python应用程序的中间,我需要运行C++应用程序,通过它的一些输入并接收输出。我已经知道我可以用Python调用C++应用程序,但是因为C++程序每次调用它都需要做一些初始计算,这使得我的程序非常慢。所以我想要的是: 将我的C++应用程序放在无限的while循环中,并保持它运行。然后在我的Python应用程序中,每当我需要一个C++应用程序的调用时,只需传递数据并获得输出。这样我就可以避免每次需要打电话时重复初始状态,c++,python,C++,Python,有什么办法可以这样做吗?就像编写另一个控制所有这些的应用程序一样。Python应用程序也有多个运行实例,但我想只使用一个C++应用程序,因为它占用了大量的内存使用子进程。Popen可以打开进程并保持它打开,使用STDIN和STDUT来与它通信。打开流程时,请使用:stdout=subprocess.PIPE,stdin=subprocess.PIPE。 然后,你可以从Prime.STDIN中写入C++,并从Calp.STDUT中读取C++程序的输出。 < P>可以用PosithPython进行。

有什么办法可以这样做吗?就像编写另一个控制所有这些的应用程序一样。Python应用程序也有多个运行实例,但我想只使用一个C++应用程序,因为它占用了大量的内存

使用子进程。Popen可以打开进程并保持它打开,使用STDIN和STDUT来与它通信。打开流程时,请使用:stdout=subprocess.PIPE,stdin=subprocess.PIPE。


然后,你可以从Prime.STDIN中写入C++,并从Calp.STDUT中读取C++程序的输出。

< P>可以用PosithPython进行。设计在其构造函数中执行初始计算的类和执行计算的方法。您可以包装它并从python实例化一次

正如asafpr回答的那样,子流程解决方案也是可能的


您还可以在C++应用程序中设置XMLRPC服务器,并用XMLRPCLIB模块调用它。p> 对不起,我想说得更清楚些。请指出任何仍然模糊的部分。谢谢一些示例代码将有助于回答这个问题。请参阅我尝试使用Boost来包装Python中的C++代码,但仍然存在多次进行初始计算的问题。