我试图做一些软件包操作(一个dpkg),而我可以只是popen
或subprocess.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平台上工作的能力,我已经发布了它的一些本地重新实现的早期版本:
我几乎不熟悉python的debs模块,但是我想指出的是调用子进程并不是* ix上的坏事,就是在Windows上。 Windows似乎打算打破作为一个子进程和解析输出的东西,但* ix通常使它非常可行。
显然Gdebi是基于python的。 如果安装了gdebi,您可以通过GDebi模块访问它的功能。
我似乎无法找到任何文档,所以我不确定它是否是一个公共的API,但它可能会伎俩。