如何为命令行应用程序编写Python绑定
我想为一个我在Linux上使用的命令行工具写一个Python的绑定或包装,这样我就可以在我的Python程序中使用它的功能。有没有人能告诉我一个标准的方法来做到这一点呢?
目前,我是通过调用subprocess.Popen来包装这个命令行程序,这样可以工作,但感觉有点不稳定。我希望能让这两者之间的结合更加稳固,这样不仅在我自己的电脑上能用,在其他地方也能正常工作!
2 个回答
1
一种方法是:
重新整理你的命令行工具,把命令行的处理和实际功能分开,这样功能就可以作为共享的档案来使用。
然后你可以用Cython来暴露这些功能。
用Python写一个完整的命令行工具,利用这些功能。
不过,这样做会让分发变得比较困难。
你现在的做法仍然是最好的方式。
5
如果你必须使用命令行界面,那么subprocess.Popen是最好的选择。记住,你可以使用shell=True,这样它就能自动选择路径变量。此外,你可以使用os.path.join来处理不同操作系统的路径分隔符等等。
不过,如果你的命令行工具有共享库的话,可以看看ctypes。它可以让你直接连接到这些库,并直接使用它们的功能。