繁体   English   中英

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

[英]How to run an executable from Python?

我有一个可执行程序(面部识别),由我们的一个程序员编写,他们不再和我们在一起。 它需要一个命令行参数并将结果打印到STDOUT,就像这样。

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

我已经查看了运行C代码的Python文档并找到了这个,这里的答案是不同的。 第二种方法甚至不使用Python.h所以我有点困惑。 当性能很重要时,最好的方法是做什么?

首先我要告诉你,我认为子进程方法和运行外部应用程序以及从STD输出读取输出将是缓慢且不可靠的。 我不会推荐这种方法。

相反,这里有一些建议:

  • 您可以使用C或C ++创建Python扩展,您可以在线找到大量有关它的资源。 因此,您可以将当前代码转换为Python扩展格式,只需使用Python扩展框架模板,在其中集成您的函数和代码,您将拥有python扩展,只需您可以从Python代码中调用它的函数。 请参阅: http//docs.python.org/2/extending/index.html

  • 将当前的C ++代码直接转换为DLL,如果您使用的是Windows,则导出要从python调用的代码函数,或者如果您使用的是Linux,则只需将其转换为共享库。 它将被编译为.so。 然后,您可以在Python代码中将函数作为外部库调用。 示例说明: http//www.linuxforu.com/2010/05/extending-python-via-shared-libraries/

我从来没有试过它们,但似乎这些项目可以帮助你满足你的需求:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM