
Я постоянно получаю это сообщение:
Setting up apt-listchanges (3.10) ...
Traceback (most recent call last):
File "/tmp/tmp.aulCeycFHm.aptlc/debconf-helper.py", line 6, in <module>
import debconf
ImportError: No module named 'debconf'
dpkg: error processing package apt-listchanges (--configure):
subprocess installed post-installation script returned error exit status 1
Processing triggers for man-db (2.7.6.1-2) ...
Errors were encountered while processing:
apt-listchanges
debconf
~$ dpkg --status debconf
Package: debconf
Status: install ok installed
Priority: required
Section: admin
Installed-Size: 558
Maintainer: Debconf Developers <[email protected]>
Architecture: all
Multi-Arch: foreign
Version: 1.5.60
Replaces: debconf-tiny
Provides: debconf-2.0
Pre-Depends: perl-base (>= 5.6.1-4)
Recommends: apt-utils (>= 0.5.1), debconf-i18n
Suggests: debconf-doc, debconf-utils, whiptail | dialog, libterm-readline-gnu-perl, libgtk2-perl (>= 1:1.130), libnet-ldap-perl, perl, libqtgui4-perl, libqtcore4-perl
Conflicts: apt (<< 0.3.12.1), cdebconf (<< 0.96), debconf-tiny, debconf-utils (<< 1.3.22), dialog (<< 0.9b-20020814-1), menu (<= 2.1.3-1), whiptail (<< 0.51.4-11), whiptail-utf8 (<= 0.50.17-13)
Conffiles:
/etc/apt/apt.conf.d/70debconf 7e9d09d5801a42b4926b736b8eeabb73
/etc/debconf.conf 8c0619be413824f1fc7698cee0f23811
Description: Debian configuration management system
Debconf is a configuration management system for debian packages. Packages
use Debconf to ask questions when they are installed.
ls -l /usr/lib/python*/dist-packages/debconf.py
ls -l /usr/lib/python*/dist-packages/debconf.py
решение1
Возможно, для вас это уже не важно, но я нашел обходной путь, по крайней мере для меня.
Проблема в том, что он не может найти его debconf.py
на вашем пути. В моем случае он использовал другой питон с другими настройками, чем те, что обычно были на моем пути.
В конце концов я нашел файл debconf.py в /usr/lib/python3/dist-packages/debconf.py
. Для меня он python3.6
имел неправильный путь, который можно найти, выполнив:
$ python3.6
>>> import sys
>>> sys.path
Что показало мне, что там не было того, что было на моем $PATH
. Вместо того, чтобы слишком долго возиться, я просто запустил это:
# ln -s /usr/lib/python3/dist-packages/debconf.py /usr/local/lib/python3.6/site-packages
Место назначения может бытьв любом местекоторый отображается в этом sys.path
. Вы, вероятно, могли бы скопировать вместо символической ссылки. Независимо от этого, это то, что я сделал, и это сработало для меня - я надеюсь, что вам повезет так же!
решение2
Эта ошибка начала появляться, когда я обновил свой вычислительный сервер с Debian jessie
до Debian stretch
.
Моя проблема заключалась в том, что я (по глупости) вручную установил Python 3.5 на всю систему перед обновлением до stretch
, и эта версия Python «маскировала» stretch
установку Python 3 по умолчанию. В частности, сыграли свою роль следующие факторы:
Моя ручная установка v3.5 поместила свою
python3
символическую ссылку в/usr/local/bin
Системный пакет Debian
python3
установил символические ссылки на/usr/bin
/usr/local/bin
был раньше в моем,$PATH
чем был/usr/bin
Итак, чтобы исправить эту конкретную проблему, мне пришлось всего лишь переименовать /usr/local/bin/python3
символическую ссылку, например, в /usr/local/bin/python3-local
, и import debconf
после вызова все заработало нормально python3
.
Более полным решением, вероятно, было бы полное удаление общесистемной ручной версии Python 3.5 и ее повторная установка в изолированной среде.