Comment obtenir la description du package en utilisant python-apt?


9

J'essaie de créer un programme graphique pour gérer facilement les packages pour les utilisateurs finaux. Cependant, je suis confronté à un problème lors de la récupération de la description du package à côté d'autres informations.

J'ai vu l'API python-apt ici et j'ai compris que je dois gérer la apt.package.Version() classe .

Mais quand j'ai essayé de l'utiliser, je n'ai obtenu que des erreurs comme:

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'

Donc, y a-t-il un corps qui peut créer un exemple en cours d'exécution pour la classe apt.package.Version () s'il vous plaît?

Merci!


Vérifiez que vous avez de longues descriptions (faites apt-cache showpour certains packages). La documentation indique de longues descriptions , donc askubuntu.com/a/558389/158442 peut être pertinent.
muru

Réponses:


8

Les commandes python suivantes devraient vous donner la longue description lorsqu'elles sont disponibles:

$ 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.'
>>> 

Remarque : mes paramètres régionaux sont définis sur LANG=en_US.UTF-8afin que les chaînes traduites ne soient pas un problème ici.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.