从python运行c ++代码

Moh*_*hit 7 c++ python ctypes cython boost-python

我想执行一个代码helloword.cpp,它从控制台接受一些参数解析那些参数,然后在控制台中打印"hello world".

现在,我想从python脚本parsearguments.py中解析这些参数

例如:

def parse_arguments:
  ...# some code
  return arguments
Run Code Online (Sandbox Code Playgroud)

现在,我如何在python和c ++之间进行通信.我一直在阅读并看到cython,boost python是选项,但我很难找到正确的简单hello世界示例.

任何建议将不胜感激.谢谢

jmf*_*ecp 9

要在python中执行C++代码,你可以有效地使用boost python,这是一个教程:http: //www.boost.org/doc/libs/1_59_0/libs/python/doc/index.html 你写了一种包装器你以外的C++代码.

如果它是C代码,python有内部库叫做ctypes.

在这两种情况下,您都应该将C/C++代码编译到共享库中.


小智 6

如何将使用Python生成的任何文本传递到C++程序的标准输入中?基本上,您必须使用Python的subprocess模块启动C++程序并将文本转储到其标准输出中.

如果您的C++程序需要在后台单独运行,您可以尝试其他形式的进程间通信,如unix域套接字.

使用boost :: python也是一种选择,但处理起来可能要困难一些.