9

私はいくつかのパッケージ操作(la dpkg)を実行しようとしていますがpopensubprocess.call可能であればPythonの方法で実行することもできます。

残念ながら、私はそのトリックを実行するためのPythonモジュールを見つけることができませんでした。

私はへの言及を見てきましたpython-debが、それは機能していないようです。python-apt潜在的な解決策のように見えるかもしれませんが、AFAICTは個々の.debファイルを処理できません。

良いdpkgpythonソリューションを知っている人はいますか?

4

4 に答える 4

7

実際に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']

悲しいことに、私が望むほど完全ではありませんが、たくさんの機能があります。

詳細

于 2012-07-30T23:20:17.553 に答える
2

Python-aptはおそらくこれを行うための標準的な方法ですが、Debian以外のプラットフォームで動作する機能が必要な場合は、その一部のネイティブ再実装の初期バージョンをリリースしました。

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

于 2017-03-07T02:09:57.710 に答える
0

私はdebs用のPythonモジュールにほとんど精通していませんが、サブプロセスの呼び出しは* ixでは悪いことではなく、Windowsでも悪いことではないことを指摘したいと思います。Windowsは、サブプロセスとしての呼び出しと出力の解析を中断することをほぼ意図しているように見えますが、*ixは通常それを非常に実行可能にします。

于 2012-07-30T18:46:54.950 に答える
0

どうやらGdebiはPythonベースです。gdebiがインストールされている場合は、GDebiモジュールを介してその機能にアクセスできます。

ドキュメントが見つからないようですので、それがパブリックAPIであるかどうかはわかりませんが、うまくいく可能性があります。

于 2012-07-30T19:38:20.323 に答える