Wie erhalte ich die Paketbeschreibung mit python-apt?

9

Ich versuche, ein grafisches Programm zu erstellen, mit dem Pakete für Endbenutzer problemlos verarbeitet werden können. Ich habe jedoch ein Problem beim Abrufen der Paketbeschreibung neben einigen anderen Informationen.

Ich habe die Python-Apt-API hier gesehen und verstanden, dass ich mich mit der apt.package.Version() Klasse befassen muss .

Aber als ich versuchte, es zu benutzen, bekam ich nur einige Fehler wie:

Traceback (most recent call last):
File "./myprogram", line 6, in <module>
print package.description
File "/usr/lib/python2.7/dist-packages/apt/package.py", line 374, in description
dsc = self._translated_records.long_desc
File "/usr/lib/python2.7/dist-packages/apt/package.py", line 315, in _translated_records
desc_iter = self._cand.translated_description
AttributeError: 'list' object has no attribute 'translated_description'

Gibt es also einen Körper, der ein laufendes Beispiel für die Klasse apt.package.Version () erstellen kann?

Vielen Dank!

Madno
quelle
Stellen Sie sicher, dass Sie lange Beschreibungen haben ( apt-cache showfür einige Pakete). Die Dokumentation enthält lange Beschreibungen , daher könnte askubuntu.com/a/558389/158442 relevant sein.
Muru

Antworten:

8

Die folgenden Python-Befehle sollten Ihnen eine lange Beschreibung geben, sofern verfügbar:

$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import apt
>>> cache = apt.Cache()
>>> pkg = cache['python2.7']
>>> pkg
<Package: name:'python2.7' architecture='amd64' id:1247L>
>>> pkg.versions
<VersionList: ['2.7.6-8']>
>>> pkg.versions[0]
<Version: package:'python2.7' version:'2.7.6-8'>
>>> pkg.versions[0].description
u'Python is a high-level, interactive, object-oriented language. Its 2.7 version
includes an extensive class library with lots of goodies for network programming, 
system administration, sounds and graphics.'
>>> 

Hinweis : Mein Gebietsschema ist so eingestellt, LANG=en_US.UTF-8dass übersetzte Zeichenfolgen hier möglicherweise kein Problem darstellen.

Sylvain Pineau
quelle