Я не могу получить 'required_changes' с Python-APT

1
import sys
from apt.debfile import DebPackage
deb = DebPackage(sys.argv[1])
print(deb.required_changes)

Я ожидал, что приведенный выше код отобразит пакеты, которые должны удовлетворять зависимости данного файла deb, но вместо этого я получаю tuple пустых списков:

([], [], [])

Я убедился, что для проверки пакета, который, как я знаю, был удален, были удалены.

Теги:
apt

1 ответ

2
Лучший ответ

Мне пришлось вызвать deb.check(), чтобы спровоцировать его на возвращаемые значения для dep.required_changes и т.д. Также ему пришлось передать экземпляр apt.cache.Cache else, на который он жаловался:

import sys
from apt.cache import Cache
from apt.debfile import DebPackage

cache = Cache()
deb = DebPackage(sys.argv[1], cache)
deb.check()
print(deb.missing_deps)
print(deb.required_changes)

Вывод:

% python apt_info.py ./libzeroc-ice33_3.3.1-12_amd64.deb
['libiceutil33']
(['libiceutil33'], [], [])
  • 0
    Как ты это понял? Вы смотрели на исходный код? Это так не очевидно.
  • 0
    Вы уверены в части apt.cache ? Я использую 0.7.100 (версия в Debian 6) и приведенный выше код без него.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню