import sys
from apt.debfile import DebPackage
deb = DebPackage(sys.argv[1])
print(deb.required_changes)
Я ожидал, что приведенный выше код отобразит пакеты, которые должны удовлетворять зависимости данного файла deb, но вместо этого я получаю tuple пустых списков:
([], [], [])
Я убедился, что для проверки пакета, который, как я знаю, был удален, были удалены.
Мне пришлось вызвать 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'], [], [])
apt.cache
? Я использую0.7.100
(версия в Debian 6) и приведенный выше код без него.