"ImportError: Kein Modul mit dem Namen _struct" konfiguriert Python-Minimal

10

Wenn ich sudo apt-get upgradestarte, erscheint der dpkg-Fehler und unterbricht den Prozess.

Fehlerdetails:

Setting up python-minimal (2.7.3-0ubuntu7.1) ...
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/runpy.py", line 162, 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 python-minimal (--configure):
 subprocess installed post-installation script returned error exit status 255
dpkg: dependency problems prevent configuration of python:
 python depends on python-minimal (= 2.7.3-0ubuntu7.1); however:
  Package python-minimal is not configured yet.

Und dieses Problem führt zu einer Reihe von Abhängigkeitsproblemen bei der Verarbeitung der folgenden Pakete:

 python
 gwibber-service
 libgwibber3
 libgwibber-gtk3
 gwibber
 gwibber-service-facebook
 gwibber-service-identica
 gwibber-service-twitter
 python-all
 python-dev
 python-all-dev
 python-apt
 python-problem-report
 python-apport
 python-libxml2
 unity-lens-gwibber
 unity-scope-video-remote

Schließlich kann ich nichts für dieses Problem tun. Und einige Tage später ist das Stammverzeichnis voll und ich konnte wegen dieses Problems sogar keine Software deinstallieren.

Java Xu
quelle
mögliche Kopie von askubuntu.com/q/270011/169736
Braiam
@Braiam, ich habe diese Frage schon einmal gefunden. Die Antworten werden vorgeschlagen, um Python neu zu installieren. Ich habe es versucht und bin gescheitert. Danke trotzdem!
Java Xu
sudo apt-get clean hilft, etwas Platz zurück zu bekommen
frlan
Ich habe meinen /usr/bin/pythonSymlink so geändert , dass er auf zeigt, python3.5und es hat einen sehr ähnlichen Fehler verursacht. Ich weiß nicht warum, wahrscheinlich weil python2.7ich bereits Deps habe, die kaputt gegangen sind, als ich den Symlink ohne Vorwarnung geändert habe. IDK, hier für zukünftige Reisende verlassen
quietContest

Antworten:

1

OK, als ich die Pakete durchgesehen habe, habe ich festgestellt, dass python-minimal nicht struct.py hat, python-minimal2.7 jedoch.

Probieren Sie es aus und sehen Sie, ob es Ihnen hilft:

sudo apt-get install --reinstall python2.7-minimal
sudo apt-get upgrade

Wenn auch das nicht funktioniert, ist Ihr $ PYTHONPATH vielleicht irgendwie durcheinander.

nano ~/.bashrc

Fügen Sie die Zeile export PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7"dann

source ~/.bashrc

Und versuchen Sie Ihr Update noch einmal.

Chuck R.
quelle
bearbeitet, um "Export" hinzuzufügen, ist es irgendwie notwendig;)
Chuck R
Es heißt "Paket python-minimal2.7 kann nicht gefunden werden". Meinst du python2.7-minimal? Wenn ich versuche, python2.7-minimal neu zu installieren, tritt das gleiche Abhängigkeitsproblem auf.
Java Xu
Hmm, tut mir leid, dass ich so lange gebraucht habe, um mich bei Ihnen zu melden. Versuchen Sie es sudo apt-get clean sudo apt-get update sudo apt-get upgrade.
Chuck R
1
Ich habe Angst, dass es nicht funktioniert. Nach clean, updateund upgrade, dann versuche ich neu zu installieren python2.7-minimal, aber das gleiche Abhängigkeitsproblem tritt auf und das reinstallschlägt erneut fehl.
Java Xu
Sieht so aus, als hätte ich mich bei welchem ​​Paket geirrt. Es ist eigentlich libpython2.7-minimal, das struct.py enthält. Stellen Sie sicher, dass das installiert ist. Was ist die aktuelle Version von python2.7-minimal, die Sie installiert haben? Hinweis:dpkg -l | grep python2.7-minimal
Chuck R
1

Versuche dies

sudo apt purge libpython*

Ich habe python2.7 und 3.7 entfernt und dann verwandte Dateien vom System gelöscht. Danach stellte ich fest, dass ich python2.7 nicht neu installieren kann. Es wurden viele Methoden versucht, die immer noch nicht funktionieren, einschließlich:

Entfernen Sie Softlinks

del virtual env dirs

Autoremove

sudo dpkg --purge `dpkg --get-selections | grep deinstall | cut -f1`

Dann habe ich einige libpython-Dateien gefunden, indem ich das gesamte Python-System durchsucht habe. (Rm-Dateien nicht aus dir, wenn Sie sich nicht sicher sind.) Nach dem Entfernen von libpython*Paketen (ich habe sie einzeln entfernt.) Wurde Python erfolgreich installiert.

Hoffe, dies kann einigen Menschen helfen, die gleichen Probleme zu haben

Jay
quelle
0

Ich weiß nicht, ob dies Ihnen überhaupt helfen wird, es ist ein bisschen wie ein Stich in die Dunkelheit, aber stellen Sie sicher, dass Ihre Standard-Python-Version auf 2.7 eingestellt ist.

In / usr / bin sind drei Dateien von Belang:

python (symlink)
python2.7
python3 (symlink)

Wenn Sie dies tun, werden ls -l /usr/bin | grep pythonSie sehen, auf was jeder Symlink zeigt.

Wenn es dir zeigt python -> python3oder python -> python3.3etwas nicht stimmt. An dieser Stelle möchten Sie:

rm /usr/bin/python
ln -s /usr/bin/python2.7 /usr/bin/python
Chuck R.
quelle
Danke für deine Antwort. In meinem /usr/bin, pythonist weich vernetzt python2.7.
Java Xu
Warum ist das? Ich hatte meinen Symlink so geändert, dass er auf zeigt python3.5, und er hat eine große Menge von Python-Paketen und aptauch gespickt . Warum kann ich nicht standardmäßig Python3 verwenden? Was ist der richtige Weg?
quietContest