我有兴趣为我在Linux上使用的现有命令行实用程序编写python绑定或包装器,以便我可以在我的python程序中访问它的功能。是否有一种标准方法可以让人指点我这样做?
目前,我已将命令行可执行文件包装在subprocess.Popen调用中,该函数虽然有效,但感觉非常脆弱,我想让双方之间的集成更稳定,以便它可以在某些地方运行除了我自己的电脑!
答案 0 :(得分:5)
如果必须使用命令行界面,则subprocess.Popen是您最好的选择。请记住,您可以使用shell = True来选择路径变量,您可以使用os.path.join来使用依赖于操作系统的路径分隔符等。
但是,如果您的命令行实用程序具有共享库,请查看ctypes,它允许您直接连接到这些库并直接公开功能。
答案 1 :(得分:1)
一种方法是
重新分配命令行实用程序,以便将命令行处理分开,并将实际功能公开为共享存档。
然后你可以使用cython公开这些功能。
在python中编写完整的命令行实用程序,利用这些函数。
这使分发变得困难。
你在做什么仍然是最好的方式。