it-swarm.com.de

Fehler beim Upgrade von Ubuntu 16.04 LTS python-minimal package error

Bis heute lief alles reibungslos, als ich mich entschied, Ubuntu 16.04. auf 16.04.4 zu aktualisieren

In der letzten Phase der Installation der heruntergeladenen Updates konnte das Paket python-minimal mit folgendem Fehler nicht installiert werden:

Setting up python-minimal (2.7.12-1~16.04) ...
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/local/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/local/lib/python2.7/compileall.py", line 16, in <module>
    import struct
  File "/usr/local/lib/python2.7/struct.py", line 1, in <module>
    from _struct import *
ImportError: No module named _struct
dpkg: error processing package python-minimal (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 python-minimal
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ich dachte, eine Neuinstallation von python und entsprechenden Paketen würde helfen. Aber ich habe leider alle python Pakete und Software deinstalliert, die von python abhängig waren, wie gimp, mplayer, kde, kicad, pycharm etc ..

Jedes Mal, wenn ich versuche, python zu installieren, wird der folgende Fehler angezeigt:

$ Sudo apt-get install python
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python-minimal python2.7 python2.7-minimal
Suggested packages:
  python-doc python-tk python2.7-doc
The following NEW packages will be installed:
  libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal
0 upgraded, 7 newly installed, 0 to remove and 21 not upgraded.
Need to get 1,628 kB/3,877 kB of archives.
After this operation, 16.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu xenial-updates/main AMD64 libpython2.7-minimal AMD64 2.7.12-1ubuntu0~16.04.3 [340 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu xenial-updates/main AMD64 python2.7-minimal AMD64 2.7.12-1ubuntu0~16.04.3 [1,261 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu xenial-updates/main AMD64 python-minimal AMD64 2.7.12-1~16.04 [28.1 kB]                 
Fetched 1,628 kB in 6s (248 kB/s)                                                                                                 
Selecting previously unselected package libpython2.7-minimal:AMD64.
(Reading database ... 250996 files and directories currently installed.)
Preparing to unpack .../libpython2.7-minimal_2.7.12-1ubuntu0~16.04.3_AMD64.deb ...
Unpacking libpython2.7-minimal:AMD64 (2.7.12-1ubuntu0~16.04.3) ...
Selecting previously unselected package python2.7-minimal.
Preparing to unpack .../python2.7-minimal_2.7.12-1ubuntu0~16.04.3_AMD64.deb ...
Unpacking python2.7-minimal (2.7.12-1ubuntu0~16.04.3) ...
Selecting previously unselected package python-minimal.
Preparing to unpack .../python-minimal_2.7.12-1~16.04_AMD64.deb ...
Unpacking python-minimal (2.7.12-1~16.04) ...
Selecting previously unselected package libpython2.7-stdlib:AMD64.
Preparing to unpack .../libpython2.7-stdlib_2.7.12-1ubuntu0~16.04.3_AMD64.deb ...
Unpacking libpython2.7-stdlib:AMD64 (2.7.12-1ubuntu0~16.04.3) ...
Selecting previously unselected package python2.7.
Preparing to unpack .../python2.7_2.7.12-1ubuntu0~16.04.3_AMD64.deb ...
Unpacking python2.7 (2.7.12-1ubuntu0~16.04.3) ...
Selecting previously unselected package libpython-stdlib:AMD64.
Preparing to unpack .../libpython-stdlib_2.7.12-1~16.04_AMD64.deb ...
Unpacking libpython-stdlib:AMD64 (2.7.12-1~16.04) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Setting up libpython2.7-minimal:AMD64 (2.7.12-1ubuntu0~16.04.3) ...
Setting up python2.7-minimal (2.7.12-1ubuntu0~16.04.3) ...
Linking and byte-compiling packages for runtime python2.7...
Setting up python-minimal (2.7.12-1~16.04) ...
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/local/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/local/lib/python2.7/compileall.py", line 16, in <module>
    import struct
  File "/usr/local/lib/python2.7/struct.py", line 1, in <module>
    from _struct import *
ImportError: No module named _struct
dpkg: error processing package python-minimal (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 python-minimal
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ich kann auch keine Software installieren, die Python benötigt.

Meine aktuelle Ubuntu-Version nach erfolglosem Upgrade:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:    16.04
Codename:   xenial

Hat jemand ein ähnliches Problem gehabt und konnte es lösen? Jede Hilfe wäre sehr dankbar.

6
Saurav Kumar

Nach stundenlangem Ringen und hunderten von Installations-/Deinstallationszeiten für python -Pakete sah es so aus, als ob ich python -Pakete einschließlich python-minimal installieren konnte. Lassen Sie mich meine Erfolgsgeschichte teilen.

  1. Anfangs konnte ich Python-Minimal noch nicht einmal deinstallieren. Jedes Mal, wenn der Fehler angezeigt wurde, den ich bei der Installation/Deinstallation in meiner Frage erwähnt habe. Sogar versucht Sudo apt-get -f install, aber ohne Gewinn. Irgendwie habe ich herausgefunden, dass es nur mit wenigen anderen Paketen zusammen deinstalliert werden kann. Die folgenden Befehle wurden verwendet, um das Entfernen von python-minimal beschädigten und verbleibenden Paketen abzuschließen:

    Sudo apt-get autoremove libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python-minimal python2.7 python2.7-minimal
    

    Dies würde alle python Pakete und die Software entfernen, die von Python abhängt. Ich weiß, das war extrem, aber glauben Sie mir, ich hatte keine andere Wahl.

    Sudo apt-get remove --purge $(Sudo dpkg -l | egrep "^(rc|iU)" | awk '{print $2}' | tr '\n' ' ')
    

    Eventuell restliche und verschmutzte Verpackungen entfernen.

    Anmerkung: Ich habe die Liste der Pakete kopiert, die in diesem Schritt entfernt wurden. Ich wusste, dass ich sie wieder brauchen würde!

  2. Als nächstes suchte ich alle Orte, an denen python2.7 installiert war, und entfernte alle Dateien und Verzeichnisse von Standard-Python. Ich wünschte, ich müsste sie nicht manuell löschen, hätte aber keine andere Wahl:

    Sudo find / -iname python2.7
    /etc/python2.7
    /usr/local/bin/python2.7
    /usr/local/lib/python2.7
    /usr/lib/python2.7
    /usr/bin/python2.7.13/lib/python2.7
    /usr/bin/python2.7.13/bin/python2.7
    /usr/bin/python2.7.13/include/python2.7
    /usr/bin/python2.7
    /usr/include/x86_64-linux-gnu/python2.7
    /usr/include/python2.7
    /usr/share/doc/python2.7
    /usr/share/binfmts/python2.7
    /usr/share/lintian/overrides/python2.7
    /proc/sys/fs/binfmt_misc/python2.7
    /var/lib/binfmts/python2.7
    

    Ich musste nicht alle oben aufgelisteten Dateien/Verzeichnisse löschen und löschte nur die Standardversion:

    Sudo rm -rf /etc/python2.7 /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/lib/python2.7
    

    Es gab andere Versionen von python, die keine Probleme verursachten. Ich glaube, die Suche kann je nach Benutzer variieren und der Befehl whereis python kann verwendet werden, um den Pfad des Standard-python zu installieren.

  3. Als nächstes habe ich python mit Erfolg installiert:

    Sudo apt-get install python
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following additional packages will be installed:
      libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python-minimal python2.7 python2.7-minimal
    Suggested packages:
      python-doc python-tk python2.7-doc
    The following NEW packages will be installed:
      libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal
    0 upgraded, 7 newly installed, 0 to remove and 21 not upgraded.
    Need to get 0 B/3,877 kB of archives.
    After this operation, 16.6 MB of additional disk space will be used.
    Do you want to continue? [Y/n] y
    Selecting previously unselected package libpython2.7-minimal:AMD64.
    (Reading database ... 250996 files and directories currently installed.)
    Preparing to unpack .../libpython2.7-minimal_2.7.12-1ubuntu0~16.04.3_AMD64.deb ...
    Unpacking libpython2.7-minimal:AMD64 (2.7.12-1ubuntu0~16.04.3) ...
    Selecting previously unselected package python2.7-minimal.
    Preparing to unpack .../python2.7-minimal_2.7.12-1ubuntu0~16.04.3_AMD64.deb ...
    Unpacking python2.7-minimal (2.7.12-1ubuntu0~16.04.3) ...
    Selecting previously unselected package python-minimal.
    Preparing to unpack .../python-minimal_2.7.12-1~16.04_AMD64.deb ...
    Unpacking python-minimal (2.7.12-1~16.04) ...
    Selecting previously unselected package libpython2.7-stdlib:AMD64.
    Preparing to unpack .../libpython2.7-stdlib_2.7.12-1ubuntu0~16.04.3_AMD64.deb ...
    Unpacking libpython2.7-stdlib:AMD64 (2.7.12-1ubuntu0~16.04.3) ...
    Selecting previously unselected package python2.7.
    Preparing to unpack .../python2.7_2.7.12-1ubuntu0~16.04.3_AMD64.deb ...
    Unpacking python2.7 (2.7.12-1ubuntu0~16.04.3) ...
    Selecting previously unselected package libpython-stdlib:AMD64.
    Preparing to unpack .../libpython-stdlib_2.7.12-1~16.04_AMD64.deb ...
    Unpacking libpython-stdlib:AMD64 (2.7.12-1~16.04) ...
    Processing triggers for man-db (2.7.5-1) ...
    Processing triggers for bamfdaemon (0.5.3~bzr0+16.04.20180209-0ubuntu1) ...
    Rebuilding /usr/share/applications/bamf-2.index...
    Processing triggers for desktop-file-utils (0.22-1ubuntu5.1) ...
    Processing triggers for gnome-menus (3.13.3-6ubuntu3.1) ...
    Processing triggers for mime-support (3.59ubuntu1) ...
    Setting up libpython2.7-minimal:AMD64 (2.7.12-1ubuntu0~16.04.3) ...
    Setting up python2.7-minimal (2.7.12-1ubuntu0~16.04.3) ...
    Linking and byte-compiling packages for runtime python2.7...
    Setting up python-minimal (2.7.12-1~16.04) ...
    Selecting previously unselected package python.
    (Reading database ... 251742 files and directories currently installed.)
    Preparing to unpack .../python_2.7.12-1~16.04_AMD64.deb ...
    Unpacking python (2.7.12-1~16.04) ...
    Processing triggers for doc-base (0.10.7) ...
    Processing 1 added doc-base file...
    Registering documents with scrollkeeper...
    Processing triggers for man-db (2.7.5-1) ...
    Setting up libpython2.7-stdlib:AMD64 (2.7.12-1ubuntu0~16.04.3) ...
    Setting up python2.7 (2.7.12-1ubuntu0~16.04.3) ...
    Setting up libpython-stdlib:AMD64 (2.7.12-1~16.04) ...
    Setting up python (2.7.12-1~16.04) ...
    

    HINWEIS: Dies installierte nur die sehr notwendigen und minimalen python Pakete. Möglicherweise müssen Sie noch alle anderen python Pakete installieren, die im ersten Schritt deinstalliert wurden.

Einige zusätzliche Anmerkungen:

In den zweiten Schritten wurden auch python Pakete von Drittanbietern gelöscht, die global mit pip installiert wurden. Leider hatte ich die Liste nicht und hatte am Ende einige Probleme mit meinen Projekten, die sie brauchen. Das war aber keine große Sache, da alle meine Projekte eine eigene python requirements.txt-Datei hatten. Trotzdem empfehle ich Ihnen, alle python -Pakete in einer Datei zu speichern, bevor Sie mit dem ersten Schritt beginnen. Der folgende Befehl kann nützlich sein:

pip freeze > python_pip_packages.txt

Außerdem musste ich pip-Dateien und -Verzeichnisse löschen (ähnlich wie ich python Standarddateien und -Verzeichnisse gelöscht habe) und pip neu installieren:

Sudo apt-get install python-pip  # installing pip
Sudo pip install --upgrade pip  # upgrading pip to latest version using pip itself
Sudo pip install -r python_pip_packages.txt  # re-installing all 3rd party python packages which were removed in 2nd step.

Hoffe andere leiden nicht so wie ich :)

8
Saurav Kumar

Für diejenigen, die beim Ausführen von Befehlen nicht weiterkommen (wo ständig über python oder ein anderes Paket geklagt wird), habe ich dasselbe Problem durchgegangen und dieses Problem durch Entfernen der Informationen aus behoben

/var/lib/dpkg/info/<the package giving you headache>

Danach sollten Sie mit Installationen/Upgrades/Updates fortfahren können

2
Diogo Santo