Làm thế nào để có được mô tả gói bằng python-apt?


9

Tôi đang cố gắng tạo một chương trình đồ họa để dễ dàng xử lý các gói cho người dùng cuối. Tuy nhiên, tôi đang gặp vấn đề trong việc truy xuất mô tả của gói bên cạnh một số thông tin khác.

Tôi đã thấy API python-apt ở đây và tôi hiểu rằng tôi phải đối phó với apt.package.Version() lớp .

Nhưng khi tôi cố gắng sử dụng nó, tất cả những gì tôi nhận được là một số lỗi như:

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'

Vì vậy, có ai có thể tạo một ví dụ đang chạy cho lớp apt.package.Version () không?

Cảm ơn!


Xác minh rằng bạn có mô tả dài (làm apt-cache showcho một số gói). Các tài liệu nói rằng các mô tả dài , do đó, Askubfox.com/a/558389/158442 có thể có liên quan.
muru

Câu trả lời:


8

Các lệnh python sau sẽ cung cấp cho bạn mô tả dài khi có sẵn:

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

Lưu ý : Ngôn ngữ của tôi được đặt thành các LANG=en_US.UTF-8chuỗi dịch có thể không phải là vấn đề ở đây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.