Dpkg Python模块?

我试图做一些软件包操作(一个dpkg),而我可以只是popensubprocess.call我宁愿做的事情python的方式,如果可能的话。

不幸的是我一直无法find一个python模块来做这个窍门。

我已经看到了python-deb参考,但它似乎已经不存在了。 python-apt可能看起来像是一个潜在的解决scheme,但AFAICT它不能处理单个的.deb文件。

任何人都知道一个很好的dpkg python解决scheme?

实际上, python-apt允许你直接使用这些文件。 这是一个例子:

 from apt.debfile import DebPackage from pprint import pprint pkg = DebPackage('/tmp/wajig_2.7_all.deb') pprint(pkg.filelist) 

输出:

 $ ./script.py ['./', 'etc/', 'etc/bash_completion.d/', ... 'usr/bin/', 'usr/bin/wajig'] 

这不像我想要的那么完整,但它有一堆功能。

( 更多信息 )

Python-apt可能是这样做的标准方法,但是如果你需要在非Debian平台上工作的能力,我已经发布了它的一些本地重新实现的早期版本:

https://github.com/TheClimateCorporation/python-dpkg

我几乎不熟悉python的debs模块,但是我想指出的是调用子进程并不是* ix上的坏事,就是在Windows上。 Windows似乎打算打破作为一个子进程和解析输出的东西,但* ix通常使它非常可行。

显然Gdebi是基于python的。 如果安装了gdebi,您可以通过GDebi模块访问它的功能。

我似乎无法找到任何文档,所以我不确定它是否是一个公共的API,但它可能会伎俩。