¿Cómo obtener la descripción del paquete usando python-apt?


9

Estoy tratando de crear un programa gráfico para manejar fácilmente los paquetes para los usuarios finales. Sin embargo, estoy enfrentando un problema al recuperar la descripción del paquete junto con alguna otra información.

He visto la API python-apt aquí y entendí que tengo que lidiar con la apt.package.Version() clase .

Pero cuando intenté usarlo, todo lo que obtuve son algunos errores como:

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'

Entonces, ¿hay algún organismo que pueda crear un ejemplo en ejecución para la clase apt.package.Version () por favor?

¡Gracias!


Verifique que tenga descripciones largas ( apt-cache showpara algunos paquetes). La documentación dice descripciones largas , por lo que askubuntu.com/a/558389/158442 podría ser relevante.
muru

Respuestas:


8

Los siguientes comandos de Python deberían darle una descripción larga cuando esté disponible:

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

Nota : Mi configuración regional está configurada para LANG=en_US.UTF-8que las cadenas traducidas no sean un problema aquí.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.