Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.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++ 运行c++;来自python的代码_C++_Python_Ctypes_Cython_Boost Python - Fatal编程技术网

C++ 运行c++;来自python的代码

C++ 运行c++;来自python的代码,c++,python,ctypes,cython,boost-python,C++,Python,Ctypes,Cython,Boost Python,我想执行一个代码helloword.cpp,它从控制台接收一些参数,解析这些参数,然后在控制台中打印“HelloWorld” 现在,我想从python脚本parsearguments.py解析这些参数 例如: def parse_arguments: ...# some code return arguments 现在,我如何在Python和C++之间通信。 我一直在阅读并看到cython、boost python是可选的,但我很难找到正确的简单hello world示例 如有任何建议

我想执行一个代码helloword.cpp,它从控制台接收一些参数,解析这些参数,然后在控制台中打印“HelloWorld”

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

例如:

def parse_arguments:
  ...# some code
  return arguments

现在,我如何在Python和C++之间通信。 我一直在阅读并看到cython、boost python是可选的,但我很难找到正确的简单hello world示例

如有任何建议,将不胜感激。
感谢

< P>如何将Python生成的任何文本传递到C++程序的标准输入中?基本上,你必须使用Python的代码>子进程< /C>模块来启动C++程序并将文本转储到其标准输出中。 < >在你的C++程序需要在后台单独运行的情况下,你可以尝试另一种进程间通信形式,比如UNIX域套接字。

使用Booo::Python也是一种选择,但它可能会更难处理。

< Py>在Python中执行C++代码,可以有效地使用Boost Python,这是一个教程: 你在C++代码之外写一种包装器。 如果是C代码,python有一个名为ctypes的内部库


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

使用boost.python对我来说似乎是一个很好的解决方案。但是,根据C++的经验,这可能是相当棘手的。一个好的起点是:


Boo.python使您能够将C++类和成员函数导出到Python中,以便能够从那里使用它们。

< P>除了BooSt.python之外,还有两个选项是SIP和SWIG(简化包装器和接口生成器)。与Boost一样,SIP和SWIG也是开源的


SWIG特别强大,但也有点毛茸茸的。它提供了支持C和C++与其他语言的负载(包括一个完整的列表)Python、Perl、Lua、TCL/TK、OCAML、Ruby、java的支持。SWIG的一个方面是它解析C++的头文件。这有好处也有缺点。一个好处是它完成了生成接口的大部分工作。缺点是它不能处理C++ 2003的一些暗角,而且它根本没有升到C++ 11。另一个缺点是大型项目的编译速度变慢。非常慢。

不执行C++源代码。对我来说,解决方案听起来不太好,但可能我缺少一些上下文。为什么你决定先用Python解析参数?GrigoL:我使用的是C++编写的框架之一,而我主要使用Python…现在,我首先收集数据并从python中推断出一些东西。。然后需要把这个推断传递给C++框架。到目前为止,我在中间步骤中保存文本文件中的所有内容,然后将该文件读取到C++,但我想将它们集成在一起。最好的方法是什么。Thanks@IgnacioVazquez-艾布拉姆斯:嗨。谢谢你的评论。那么,解决这个问题的好办法是什么呢。谢谢。首先,告诉我们你到底有什么。