Problem mit dem Update-Manager: Kein Modul namens 'apt_pkg' in Ubuntu 13.10, das Python 3.4 unter / usr / local / lib installiert hat


25

Ich bin ziemlich neu in Ubuntu und versuche, den Update-Manager unter Ubuntu 13.10 auszuführen. Ich bekomme:

jacopo@jacopo-laptop:~$ update-manager 
Traceback (most recent call last):
  File "/usr/bin/update-manager", line 28, in <module>
    from gi.repository import Gtk
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in <module> from ._gi import _API
ImportError: No module named 'gi._gi'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 64, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 21, in <module>
import apt_pkg
ImportError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
File "/usr/bin/update-manager", line 28, in <module>
from gi.repository import Gtk
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in <module>
from ._gi import _API
ImportError: No module named 'gi._gi'

Soweit ich verstanden habe, ist dies ein Problem im Zusammenhang mit der Tatsache, dass ich Python3.4 installiert haben sollte. Ich habe es installiert /usr/local/lib, bekomme aber immer den gleichen Fehler. Auf diese Weise kann ich nicht einmal auf Ubuntu 14.04 upgraden.

Antworten:


33

Neuinstallation apt_pkgmit:

sudo apt-get install --reinstall python3-apt

Der Fehler liegt hauptsächlich daran, dass die Bibliothek in apt_pkg.cpython-35m-x86_64-linux-gnu.sonicht vorhanden ist /usr/lib/python3/dist-packages.

Das Entfernen und erneute Installieren sollte helfen.


14
Es ist fast immer vorzuziehen, das Paket in einem Schritt neu zu installieren sudo apt install --reinstall <package-name>, da dies das Berechnen und Entfernen von Abhängigkeiten (und das Markieren von Paketen zum Entfernen) vermeidet. Beachten Sie, dass das Entfernen von Paketen nicht immer umkehrbar ist. Zum Beispiel wird APT sich selbst oder seine Abhängigkeiten entfernen, wenn Sie dazu aufgefordert werden! Die --reinstallFlagge ist daher viel sicherer als von removegefolgt install. Der removeBefehl selbst entfernt keine Konfigurationsdateien eines Pakets, hat also keinen Vorteil gegenüber install --reinstall.
Zanna

Perfekt! Es hat bei mir funktioniert!
Francis Rodrigues

8
Jetzt sudo: add-apt-repository: command not founderhalte ich folgende Fehlermeldung: @vikas kapdoskar
alper

1
sudo: add-apt-repository: command not foundErhalten dieses Fehlers in Ubuntu 16.04
Tinkal Gogoi

3
Diese Antwort sollte mit dem Vorschlag von @Zanna aktualisiert werden. Durch das Entfernen von python3-apt werden eine Vielzahl von Abhängigkeiten beseitigt, und es kann jemandem Angst einjagen, ganz zu schweigen davon, dass er sein System durcheinandergebracht hat.
Alkanen

11

bei mir haben folgende schritte geklappt:

cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-{35m,34m}-x86_64-linux-gnu.so

Die ursprüngliche Lösung finden Sie hier: /programming/13708180/python-dev-installation-error-importerror-no-module-named-apt-pkg/36232975#36232975


1
Da mehr als die bei der in einem Kommentar erwähnt „Original - Lösung“ für mich gearbeitet: sudo ln -s apt_pkg.cpython-{35m,36m}-x86_64-linux-gnu.so. Die 35(Python 3.5) -Version wird unabhängig von der von Ihnen ausgeführten Unterversion von Python 3.x installiert. Vielen Dank!
Freitag,

4
update-alternatives  --set python3  /usr/bin/python3.6

3
Das Aktualisieren von Alternativen für Python kann manchmal zu Problemen führen.
Kulfy

Ich habe es benutzt update-alternatives --set python3 /usr/bin/python3.5und es hat funktioniert. python3 zeigte bereits python3.6auf mein System.
Desik

2

Wenn Sie versuchen, ein Upgrade von 13.10 auf 14.04 durchzuführen, befolgen Sie diese Anweisungen . Wenn Sie nur versuchen, Ihr aktuelles System über die Befehlszeile zu aktualisieren, öffnen Sie ein Terminal und geben Sie Folgendes ein:

sudo apt-get update
sudo apt-get dist-upgrade

Vielen Dank. Ich hatte es bereits versucht, aber es hat nicht funktioniert. Ich habe es jetzt noch einmal versucht und nach apt-get update die Warnung W: Abrufen von bzip2 fehlgeschlagen: /var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_saucy-updates_main_source_Sources Hash Sum mismatch
user291925

K - Sie haben ein Problem mit den Update-Quellen. Ich habe mehrere Threads darüber gesehen, wie man das behebt. Der folgende Link scheint gut zu Ihrer Frage zu passen. Askubuntu.com/questions/41605/…
Charles Green

Vielen Dank! Ich habe es versucht, aber ich erhalte immer noch den gleichen Fehler beim Ausführenupdate-manager
user291925

K - das erschöpft meine Möglichkeiten ohne eine umfangreichere Websuche. Viel Glück!
Charles Green

2

Ich habe es geschafft , dies durch Kopieren zu lösen , apt_pkg.cpython-34m-i386-linux-gnu.soum /usr/lib/python3/dist-packages/von einem anderen Desktop - Ubuntu 14.04 LTS. Ich habe fast alle über das Internet gefundenen Möglichkeiten ausprobiert, wie das Löschen der Python-Installation und anschließende Neuinstallieren, das Bereinigen defekter Upgrade-Dateien usw., aber es blieb erfolglos.


2

Nur für den Fall, dass es einem anderen hilft, habe ich dieses Problem, das anscheinend durch Python-Versionskonflikte verursacht wurde, endlich gelöst, indem ich den Link python3 und dann auf die richtige Python-Version umgeleitet habe:

sudo rm /usr/bin/python3
sudo ln -s /usr/bin/python3.4

Möglicherweise müssen Sie die richtige Python-Version eingeben, die Sie mit gefunden haben

python3 -V

Sie haben also eine Version für entfernt 3.4?
IggyPass

1

Nur ein Hinweis: Ich vermeide es, "mein" Python unter / usr / local zu installieren, habe jedoch ein dediziertes Verzeichnis pro Python-Version (z. B. in / opt) und verwende virtuelle Umgebungen in meinem Benutzerkonto, um das benötigte Python zu verwenden. welches durch mein .profile aktiviert wird

Durch diesen Ansatz vermeiden Sie immer, die erwartete Konfiguration und Abhängigkeiten des Python-Systems zu ändern.

Nun, ich weiß, es ist zu spät für Ihren Fall, aber ...


1

Das Problem für mich war, dass ich python3.7 neben python3.6 installiert und zum Standard gemacht habe.

Ich führe den folgenden Befehl manuell aus:

ln -s /usr/bin/python3.6  /usr/bin/python3

python3 zeigt jetzt auf die richtige Version von python ..., die das Problem löst.


1
Ich bin auch mit dem Problem konfrontiert, weil ich in Ubuntu 18 auf python3.7 aktualisiert habe ln: failed to create symbolic link '/usr/bin/python3': File exists. Wenn ich lsin meiner /usr/bin/python*, ich habe python3, python3.6, python3.6m, python3.7, python3.7mund python3m. Wenn ich das tue sudo update-alternatives --config python3, habe ich *0 /usr/bin/python3.7 2 auto mode, 1 /usr/bin/python3.6 1 manual modeund 2 /usr/bin/python3.7 2 manual mode. Vielen Dank.
user1330974

Möglicherweise müssen Sie eine bereits vorhandene Linkdatei löschen oder in .old umbenennen und einen eigenen Link erstellen.
M.Hefny

@ user1330974 hast du das problem endlich gelöst? Ich
stehe

1
@ user1330974 anscheinend hat nur das erzwingen des symbolischen ln -sf /usr/bin/python3.6 /usr/bin/python3
links

1
@dallonsi Danke. Ich habe nicht weiter darauf eingegangen, aber ich werde Ihren Ansatz verwenden. :)
user1330974
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.