Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dpkg Python模块?_Python_Linux_Apt_Deb_Dpkg - Fatal编程技术网

Dpkg Python模块?

Dpkg Python模块?,python,linux,apt,deb,dpkg,Python,Linux,Apt,Deb,Dpkg,我正在尝试做一些包操作(一个ladpkg),虽然我可以只popen或子流程。call,但如果可能的话,我宁愿用python的方式来做 不幸的是,我一直无法找到一个python模块来完成这个任务 我看到了对pythondeb的引用,但它似乎已经不存在了python-apt似乎是一个潜在的解决方案,但它无法处理单个.deb文件 有谁知道一个好的dpkg python解决方案吗?我对debs的python模块不太熟悉,但我想指出,在*ix上调用子流程并不是坏事,而是在Windows上。Windows似

我正在尝试做一些包操作(一个ladpkg),虽然我可以只
popen
子流程。call
,但如果可能的话,我宁愿用python的方式来做

不幸的是,我一直无法找到一个python模块来完成这个任务

我看到了对
pythondeb
的引用,但它似乎已经不存在了
python-apt
似乎是一个潜在的解决方案,但它无法处理单个
.deb
文件


有谁知道一个好的dpkg python解决方案吗?

我对debs的python模块不太熟悉,但我想指出,在*ix上调用子流程并不是坏事,而是在Windows上。Windows似乎打算将调用东西作为子进程和解析输出,但*ix通常使其非常可行。

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


我似乎找不到任何文档,所以我不确定它是否是一个公共API,但它可能会起作用。

实际上,
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平台上工作的能力,我已经发布了它的一些部分的本地重新实现的早期版本:


在深入研究gdebi之后,我注意到它使用了您所指的功能,然后只是执行一个popen,然后运行dpkg。谢谢。直接链接到python apt的文档: