如何为命令行应用程序编写Python绑定

时间:2010-11-04 20:36:32

标签: c++ python c binding

我有兴趣为我在Linux上使用的现有命令行实用程序编写python绑定或包装器,以便我可以在我的python程序中访问它的功能。是否有一种标准方法可以让人指点我这样做?

目前,我已将命令行可执行文件包装在subprocess.Popen调用中,该函数虽然有效,但感觉非常脆弱,我想让双方之间的集成更稳定,以便它可以在某些地方运行除了我自己的电脑!

2 个答案:

答案 0 :(得分:5)

如果必须使用命令行界面,则subprocess.Popen是您最好的选择。请记住,您可以使用shell = True来选择路径变量,您可以使用os.path.join来使用依赖于操作系统的路径分隔符等。

但是,如果您的命令行实用程序具有共享库,请查看ctypes,它允许您直接连接到这些库并直接公开功能。

答案 1 :(得分:1)

一种方法是

  1. 重新分配命令行实用程序,以便将命令行处理分开,并将实际功能公开为共享存档。

  2. 然后你可以使用cython公开这些功能。

  3. 在python中编写完整的命令行实用程序,利用这些函数。

  4. 这使分发变得困难。

    你在做什么仍然是最好的方式。