如何从Python运行可执行文件?

如何从Python运行可执行文件?,python,c++,Python,C++,我有一个可执行文件(人脸识别),由我们的一个程序员编写,他已经不在了。它接受一个命令行参数,并像这样将结果打印到STDOUT 我需要能够在Python中使用它,但性能很重要,所以我不确定是否应该使用它。我需要捕获程序的输出,所以修改代码以使它成为C++库,并用Python编写它的包装器是更好的主意吗?与使用子流程相比,这将如何影响性能 我查看了运行C代码的Python文档,发现答案不同。第二种方法甚至不使用Python.h,所以我有点困惑。在性能很重要的情况下,做我需要的事情的最佳方法是什么?首

我有一个可执行文件(人脸识别),由我们的一个程序员编写,他已经不在了。它接受一个命令行参数,并像这样将结果打印到STDOUT

我需要能够在Python中使用它,但性能很重要,所以我不确定是否应该使用它。我需要捕获程序的输出,所以修改代码以使它成为C++库,并用Python编写它的包装器是更好的主意吗?与使用子流程相比,这将如何影响性能


我查看了运行C代码的Python文档,发现答案不同。第二种方法甚至不使用Python.h,所以我有点困惑。在性能很重要的情况下,做我需要的事情的最佳方法是什么?

首先,我必须告诉您,我认为子流程方法和运行外部应用程序以及从STD输出读取输出将是缓慢和不可靠的。我不推荐那种方法

相反,以下是一些建议:

    > p>可以在C或C++中创建Python扩展,可以在网上找到很多资源。因此,您可以将当前代码转换为Python扩展格式,只需使用Python扩展框架模板,在其中集成函数和代码,就可以得到Python扩展,只需从Python代码中调用函数即可。见:

  • 将当前C++代码直接转换为DLL,并在Windows中导出要从Python调用的代码的函数,或者仅在使用Linux时将其转换为共享库。它将被编译为。所以。然后,可以在Python代码中将函数作为外部库调用。示例及说明:

我从未尝试过,但这些项目似乎可以帮助您实现您的需求:


为什么要投票,为什么C++标签被删除,这正是我要问的?可执行文件或库导入函数,决定!移除的标签到目前为止没有否决…@πάνταῥεῖ: 是的,加密公司需要做出决定,但这不是投票否决的理由。我不认为你的编辑或重新标签在这种情况下是正当的。“丹尼尔普赖登我没有投票,你的编辑,(重新)添加是正确的,对不起……@密码:如果你的问题是“我怎么能调用一些来自Python的任意C++代码”,那么它是一个精确的副本,这意味着它应该作为一个副本关闭。如果你的问题是“我怎样才能从Python执行C++程序?”那么答案可能是使用<代码>子进程< /C>模块。πάντα ῥεῖ 是正确的,同时问这两个问题并没有什么意义——也许你真正想要的是“我应该何时在C++库中链接而不是使用子进程”?