Как программно получить список приложений из Центра программного обеспечения

Я пишу приложение PyGI, в котором я хотел бы показать список подходящих приложений из Ubuntu Software Center в виде текстового ввода с автоматическим заполнением или dropdwon. Я еще не нашел лучший способ представить информацию, я просто хочу, чтобы пользователю было проще вводить название приложения.

Но перед этим я хотел бы выяснить, как получить данные. Существует ли API для получения списка всех приложений из Центра программного обеспечения или косвенно через панель инструментов в Unity?

4
задан 18 May 2012 в 20:59

2 ответа

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний программный центр API:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
0
ответ дан 18 May 2012 в 20:59

Используйте пакет python-apt Install python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакеты используют

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

0
ответ дан 18 May 2012 в 20:59

Другие вопросы по тегам:

Похожие вопросы: