Bagaimana cara mendapatkan deskripsi paket menggunakan python-apt?

9

Saya mencoba membuat program grafis untuk menangani paket dengan mudah bagi pengguna akhir. Namun, saya menghadapi masalah dalam mengambil deskripsi paket di samping beberapa informasi lainnya.

Saya telah melihat API python-apt di sini dan saya mengerti bahwa saya harus berurusan dengan apt.package.Version() kelas .

Tetapi ketika saya mencoba menggunakannya, semua yang saya dapatkan adalah beberapa kesalahan seperti:

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'

Jadi, apakah ada badan yang bisa membuat contoh untuk kelas apt.package.Version ()?

Terima kasih!

Nyonya
sumber
Pastikan Anda memiliki deskripsi panjang (lakukan apt-cache showuntuk beberapa paket). Dokumentasi mengatakan deskripsi panjang , jadi askubuntu.com/a/558389/158442 mungkin relevan.
muru

Jawaban:

8

Perintah python berikut akan memberi Anda deskripsi panjang saat tersedia:

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

Catatan : Lokal saya disetel ke LANG=en_US.UTF-8string yang diterjemahkan mungkin tidak menjadi masalah di sini.

Sylvain Pineau
sumber