![Ubuntu 20.04 LTS:由于 Python 版本问题,无法进一步安装数据包和更新 - 如何清理](https://linux22.com/image/1070440/Ubuntu%2020.04%20LTS%EF%BC%9A%E7%94%B1%E4%BA%8E%20Python%20%E7%89%88%E6%9C%AC%E9%97%AE%E9%A2%98%EF%BC%8C%E6%97%A0%E6%B3%95%E8%BF%9B%E4%B8%80%E6%AD%A5%E5%AE%89%E8%A3%85%E6%95%B0%E6%8D%AE%E5%8C%85%E5%92%8C%E6%9B%B4%E6%96%B0%20-%20%E5%A6%82%E4%BD%95%E6%B8%85%E7%90%86.png)
---底部提供了更新(更多详细信息)---
我已成功完成从 Ubuntu 19.04 到 20.04 LTS 的发行版内升级。这已经是很久以前的事了,这台机器是我每天工作的客户端。此时我能够应用 Ubuntu 更新。我安装了很多数据包。大多数都是通过经典的数据包管理系统 apt-get 安装的。
与此同时,我安装了一些需要不同 Python 版本的包。现在我遇到了大麻烦,因为从那以后,我无法在系统上安装任何东西。
我读了很多帖子,它们都在解决这个 python 混乱问题,但没有最终的解决方案。我知道未来我必须使用 pip 或 docker。所以我会这样做。
但目前我依赖于我日常工作的客户,没有机会使其焕然一新。
有没有办法为 Python 设置一个稳定的本机状态,就像我进行了新安装一样(一种重置状态)?此外,如果在此之后,一些基于 Python 的用户程序无法运行。
我无法定位这个问题的发生时间。下面我对我的系统进行一些分析。
我发现,一些使用数据包管理 (apt-get install) 停止的程序安装会覆盖系统范围的 /usr/bin/python2 -> python2.7,但这种情况被否认了。我强烈怀疑这是通过 python-gtk2 依赖关系引起的?!因为这个错误/消息在几周前是单独出现的。在尝试解决问题时,我收到了这条有关 python-enchant 的新消息。
在此先非常感谢您的帮助。
------我的系统(抱歉,这是德语本地化)
user@mymachine:~$ **lsb_release -a**
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal
用户@mymachine:~$sudo snap 列表
Name Version Revision Tracking Herausgeber Hinweise
core 16-2.49.2 10958 latest/stable canonical? core
core18 20210309 1997 latest/stable canonical? base
go 1.16.3 7360 latest/stable mwhudson classic
gtk-common-themes 0.1-52-gb92ac40 1515 latest/stable canonical? -
gtk2-common-themes 0.1 13 latest/stable canonical? -
------实际会话中python的使用
用户@mymachine:~$ps 辅助 | grep python
root 1213 0.0 0.0 39732 14776 ? Ss Mai02 0:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
root 1601 0.0 0.1 118480 16892 ? Ssl Mai02 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
user 3120 0.0 0.1 435708 27452 ? Sl Mai02 0:00 /usr/bin/python3 /usr/bin/blueman-applet
user 3125 0.0 0.1 65492 32024 ? S Mai02 0:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
user 3245 0.0 0.1 360956 28980 ? Sl Mai02 0:00 /usr/bin/python3 /usr/bin/blueman-tray
user 22367 0.0 0.0 9412 672 pts/4 S+ 10:39 0:00 grep --color=auto python
*------通过 sudo apt-upgrade 或数据包安装后.deb 或 sudo apt-get install 我收到依赖问题消息:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
python-enchant : Hängt ab von: python:any (>= 2.7.5-5~)
Hängt ab von: python:any (< 2.8)
python-gtk2 : Hängt ab von: python (>= 2.7)
Hängt ab von: python (< 2.8)
python-gtksourceview2 : Hängt ab von: python (>= 2.7)
Hängt ab von: python (< 2.8)
E: Unerfüllte Abhängigkeiten. Versuchen Sie »apt --fix-broken install« ohne Angabe eines Pakets (oder geben Sie eine Lösung an).
------Python分析 用户@mymachine:~$*dpkg -l | grep libpython。最小
ii libpython2.7-minimal:amd64 2.7.18-1~20.04 amd64 Minimal subset of the Python language (version 2.7)
ii libpython3.7-minimal:amd64 3.7.5-2~19.10ubuntu1 amd64 Minimal subset of the Python language (version 3.7)
ii libpython3.8-minimal:amd64 3.8.5-1~20.04 amd64 Minimal subset of the Python language (version 3.8)
用户@mymachine:~$sudo apt-cache --installed -i --recurse rdepends libpython3.8-minimal | grep "^ " | sort -u |xargs apt-mark auto
apport wurde bereits auf automatisch installiert gesetzt.
aptdaemon wurde bereits auf automatisch installiert gesetzt.
apturl-common wurde bereits auf automatisch installiert gesetzt.
command-not-found wurde bereits auf automatisch installiert gesetzt.
gdb wurde bereits auf automatisch installiert gesetzt.
gir1.2-peas-1.0 wurde bereits auf automatisch installiert gesetzt.
gnome-software-plugin-snap wurde bereits auf automatisch installiert gesetzt.
ibus wurde bereits auf automatisch installiert gesetzt.
Markierung für ibus:i386 kann nicht gesetzt werden, da es nicht installiert ist.
language-selector-common wurde bereits auf automatisch installiert gesetzt.
Markierung für libglib2.0-dev-bin:i386 kann nicht gesetzt werden, da es nicht installiert ist.
libpeas-1.0-0 wurde bereits auf automatisch installiert gesetzt.
libpurple-bin wurde bereits auf automatisch installiert gesetzt.
libpython3.8 wurde bereits auf automatisch installiert gesetzt.
libpython3.8-stdlib wurde bereits auf automatisch installiert gesetzt.
libpython3-stdlib wurde bereits auf automatisch installiert gesetzt.
libsmbclient wurde bereits auf automatisch installiert gesetzt.
netplan.io wurde bereits auf automatisch installiert gesetzt.
networkd-dispatcher wurde bereits auf automatisch installiert gesetzt.
onboard-common wurde bereits auf automatisch installiert gesetzt.
onboard-data wurde bereits auf automatisch installiert gesetzt.
printer-driver-foo2zjs-common wurde bereits auf automatisch installiert gesetzt.
printer-driver-postscript-hp wurde bereits auf automatisch installiert gesetzt.
python3.8 wurde bereits auf automatisch installiert gesetzt.
python3.8-minimal wurde bereits auf automatisch installiert gesetzt.
python3-apport wurde bereits auf automatisch installiert gesetzt.
python3-apsw wurde bereits auf automatisch installiert gesetzt.
python3-apt wurde bereits auf automatisch installiert gesetzt.
python3-aptdaemon wurde bereits auf automatisch installiert gesetzt.
python3-aptdaemon.gtk3widgets wurde bereits auf automatisch installiert gesetzt.
python3-cairo wurde bereits auf automatisch installiert gesetzt.
python3-cffi-backend wurde bereits auf automatisch installiert gesetzt.
python3-chm wurde bereits auf automatisch installiert gesetzt.
python3-commandnotfound wurde bereits auf automatisch installiert gesetzt.
python3-crypto wurde bereits auf automatisch installiert gesetzt.
python3-cryptography wurde bereits auf automatisch installiert gesetzt.
python3-cssselect wurde bereits auf automatisch installiert gesetzt.
python3-cups wurde bereits auf automatisch installiert gesetzt.
python3-cupshelpers wurde bereits auf automatisch installiert gesetzt.
python3-dbus wurde bereits auf automatisch installiert gesetzt.
python3-debianbts wurde bereits auf automatisch installiert gesetzt.
python3-distupgrade wurde bereits auf automatisch installiert gesetzt.
python3-gdbm wurde bereits auf automatisch installiert gesetzt.
python3-gi wurde bereits auf automatisch installiert gesetzt.
python3-gi-cairo wurde bereits auf automatisch installiert gesetzt.
python3-gpg wurde bereits auf automatisch installiert gesetzt.
python3-html5-parser wurde bereits auf automatisch installiert gesetzt.
python3-ibus-1.0 wurde bereits auf automatisch installiert gesetzt.
python3-keyring wurde bereits auf automatisch installiert gesetzt.
python3-launchpadlib wurde bereits auf automatisch installiert gesetzt.
python3-lazr.restfulclient wurde bereits auf automatisch installiert gesetzt.
python3-ldb wurde bereits auf automatisch installiert gesetzt.
python3-lxml wurde bereits auf automatisch installiert gesetzt.
python3-minimal wurde bereits auf automatisch installiert gesetzt.
python3-msgpack wurde bereits auf automatisch installiert gesetzt.
python3-nacl wurde bereits auf automatisch installiert gesetzt.
python3-netifaces wurde bereits auf automatisch installiert gesetzt.
python3-numpy wurde bereits auf automatisch installiert gesetzt.
python3-oauthlib wurde bereits auf automatisch installiert gesetzt.
python3-odf wurde bereits auf automatisch installiert gesetzt.
python3-pil wurde bereits auf automatisch installiert gesetzt.
python3-psutil wurde bereits auf automatisch installiert gesetzt.
python3-pycurl wurde bereits auf automatisch installiert gesetzt.
python3-pymacaroons wurde bereits auf automatisch installiert gesetzt.
python3-pyqt5.qtsvg wurde bereits auf automatisch installiert gesetzt.
python3-pyqt5.qtwebchannel wurde bereits auf automatisch installiert gesetzt.
python3-pyqt5.qtwebengine wurde bereits auf automatisch installiert gesetzt.
python3-pysimplesoap wurde bereits auf automatisch installiert gesetzt.
python3-regex wurde bereits auf automatisch installiert gesetzt.
python3-renderpm wurde bereits auf automatisch installiert gesetzt.
python3-reportlab wurde bereits auf automatisch installiert gesetzt.
python3-reportlab-accel wurde bereits auf automatisch installiert gesetzt.
python3-samba wurde bereits auf automatisch installiert gesetzt.
python3-sane wurde bereits auf automatisch installiert gesetzt.
python3-secretstorage wurde bereits auf automatisch installiert gesetzt.
python3-setuptools wurde bereits auf automatisch installiert gesetzt.
python3-simplejson wurde bereits auf automatisch installiert gesetzt.
python3-software-properties wurde bereits auf automatisch installiert gesetzt.
python3-systemd wurde bereits auf automatisch installiert gesetzt.
python3-talloc wurde bereits auf automatisch installiert gesetzt.
python3-tdb wurde bereits auf automatisch installiert gesetzt.
python3-tk wurde bereits auf automatisch installiert gesetzt.
python3-uno wurde bereits auf automatisch installiert gesetzt.
python3-update-manager wurde bereits auf automatisch installiert gesetzt.
python3-urwid wurde bereits auf automatisch installiert gesetzt.
python3-webob wurde bereits auf automatisch installiert gesetzt.
python3-yaml wurde bereits auf automatisch installiert gesetzt.
python-apt-common wurde bereits auf automatisch installiert gesetzt.
python-odf-tools wurde bereits auf automatisch installiert gesetzt.
samba-common-bin wurde bereits auf automatisch installiert gesetzt.
samba-dsdb-modules wurde bereits auf automatisch installiert gesetzt.
samba-libs wurde bereits auf automatisch installiert gesetzt.
system-config-printer-common wurde bereits auf automatisch installiert gesetzt.
system-config-printer-udev wurde bereits auf automatisch installiert gesetzt.
ubuntu-advantage-tools wurde bereits auf automatisch installiert gesetzt.
ubuntu-release-upgrader-core wurde bereits auf automatisch installiert gesetzt.
unattended-upgrades wurde bereits auf automatisch installiert gesetzt.
virtualbox-qt wurde bereits auf automatisch installiert gesetzt.
xserver-xorg wurde bereits auf automatisch installiert gesetzt.
Markierung für xserver-xorg-hwe-16.04 kann nicht gesetzt werden, da es nicht installiert ist.
E: Could not create temporary file for /var/lib/apt/extended_states - mkstemp (13: Keine Berechtigung)
E: Temporäres StateFile /var/lib/apt/extended_states konnte nicht geschrieben werden.
用户@mymachine:~$apt-cache rdepends -i --installed --recurse python2 | grep -v“ ”| sort -u
calibre
font-manager
gimp
meld
nautilus-dropbox
ocrfeeder
python2
python-apsw
python-cairo
python-cffi-backend
python-crypto
python-cryptography
python-dbus
python-gi
python-gobject
python-gobject-2
python-gtk2
python-gtksourceview2
python-libxml2
python-lxml
python-netifaces
python-numpy
python-openssl
python-pil
python-simplejson
python-sip
python-tk
python-yaml
scribus
scribus-data
用户@mymachine:~$ls-al/usr/bin/python*
lrwxrwxrwx 1 root root 24 Feb 24 14:48 /usr/bin/python -> /etc/alternatives/python
lrwxrwxrwx 1 root root 9 Feb 24 2020 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3629032 Aug 4 2020 /usr/bin/python2.7
lrwxrwxrwx 1 root root 33 Aug 4 2020 /usr/bin/python2.7-config -> x86_64-linux-gnu-python2.7-config
lrwxrwxrwx 1 root root 9 Mär 13 2020 /usr/bin/python3 -> python3.8
-rwxr-xr-x 2 root root 5102632 Apr 19 2020 /usr/bin/python3.7
-rwxr-xr-x 2 root root 5102632 Apr 19 2020 /usr/bin/python3.7m
-rwxr-xr-x 1 root root 5486352 Jul 28 2020 /usr/bin/python3.8
--- 更新 01 ---
你好,我在这里给出了 sudo apt -f install 的完整输出:
如果你能看到,系统范围的 python 版本(2.7.17-1)被锁定,必须使用此包进行更新:python-is-python2_2.7.17-4_all.deb
user@mymachine: ~$ sudo apt -f install
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Abhängigkeiten werden korrigiert ... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
gcc-9-base:i386 geoip-database libapt-pkg5.90 libart-2.0-2 libbind9-161
libbonobo2-0 libbonobo2-common libbonoboui2-0 libbonoboui2-common
libboost-date-time1.67.0 libboost-iostreams1.67.0 libboost-locale1.67.0
libboost-thread1.67.0 libbrlapi0.6 libcodec2-0.8.1 libdns-export1104
libdns1104 libdns1109 libdvdread4 libevent-2.1-6 libevent-core-2.1-6
libevent-pthreads-2.1-6 libexiv2-14 libffi6 libffi6:i386 libfluidsynth1
libgeoip1 libgnome-2-0 libgnome-desktop-3-18 libgnome2-0 libgnome2-bin
libgnome2-common libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0
libgnomeui-common libgnomevfs2-0 libgnomevfs2-common libgsoap-2.8.75
libgspell-1-1 libgutenprint-common libgutenprint9 libhogweed4
libhogweed4:i386 libicu63 libicu63:i386 libidl-2-0 libilmbase23 libiptc0
libirs161 libisc-export1100 libisc1100 libisc1105 libisccc161 libisccfg163
libisl21 libjte1 libllvm9 liblouis17 liblwres161 libmypaint-1.3-0 libmysofa0
libnettle6 libnettle6:i386 libnfs12 liboauth0 libopenexr23 liborbit-2-0
liborbit2 liborcus-0.14-0 libpangox-1.0-0 libplymouth4 libpoppler90
libpython-stdlib libpython3.7 libpython3.7-minimal libpython3.7-stdlib
libqpdf21 libusbmuxd4 libwnck-common libwnck22 libx265-176
linux-headers-5.3.0-62 linux-headers-5.3.0-62-generic
linux-image-5.3.0-62-generic linux-modules-5.3.0-62-generic
linux-modules-extra-5.3.0-62-generic node-is-builtin-module node-node-uuid
printer-driver-gutenprint python-blinker python-certifi python-crypto
python-httplib2 python-idna python-minimal python-pyasn1
python-pyasn1-modules python-tz python-xdg python3-asn1crypto python3-nacl
python3-pymacaroons python3.7 python3.7-minimal
Verwenden Sie »sudo apt autoremove«, um sie zu entfernen.
Die folgenden zusätzlichen Pakete werden installiert:
python-is-python2
Die folgenden NEUEN Pakete werden installiert:
python-is-python2
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 220 nicht aktualisiert.
5 nicht vollständig installiert oder entfernt.
Es müssen noch 0 B von 2.496 B an Archiven heruntergeladen werden.
Nach dieser Operation werden 10,2 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] j
(Lese Datenbank ... 376668 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../python-is-python2_2.7.17-4_all.deb ...
Entpacken von python-is-python2 (2.7.17-4) ...
dpkg: Fehler beim Bearbeiten des Archivs /var/cache/apt/archives/python-is-pytho
n2_2.7.17-4_all.deb (--unpack):
Versuch, »/usr/bin/python« zu überschreiben, welches auch in Paket python-minim
al 2.7.17-1 ist
Fehler traten auf beim Bearbeiten von:
/var/cache/apt/archives/python-is-python2_2.7.17-4_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
--- 更新 02 ---
我如何更改安装候选版本 (2.7.12-1~16.04)。这可能是问题所在,因为它是一个无效的来源?
sudo apt-cache policy python
python:
Installiert: (keine)
Installationskandidat: 2.7.12-1~16.04
Versionstabelle:
2.7.17-1 -1
100 /var/lib/dpkg/status
2.7.12-1~16.04 500
500 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages