«ImportError: aucun module nommé _struct» configuration de python-minimal


10

Lorsque je cours sudo apt-get upgrade, l'erreur dpkg apparaît et interrompt le processus.

Détails de l'erreur:

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.

Et ce problème entraîne une série de problèmes de dépendance lors du traitement des packages suivants:

 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

Enfin, je ne peux rien faire pour ce problème. Et plusieurs jours plus tard, le répertoire racine est plein et je n'ai même pas pu désinstaller de logiciel à cause de ce problème.


possible dupliqué de askubuntu.com/q/270011/169736
Braiam

@Braiam, j'ai déjà trouvé cette question. Les réponses sont suggérées pour réinstaller python. J'ai essayé et échoué. Merci quand même!
Java Xu

sudo apt-get clean aide à récupérer de l'espace
frlan

J'ai changé mon /usr/bin/pythonlien symbolique pour pointer vers python3.5et cela a causé une erreur très similaire à cela. Je ne sais pas pourquoi, probablement à python2.7cause d' avoir déjà des dépôts qui se sont cassés quand j'ai changé le lien symbolique sans avertissement. IDK, laissant cela ici pour les futurs voyageurs
quietContest

Réponses:



1

OK, en parcourant les packages, j'ai trouvé que python-minimal n'a pas struct.py, mais python-minimal2.7 en a.

Alors, essayez ceci et voyez si cela vous aide:

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

Si même cela ne fonctionne pas, votre $ PYTHONPATH est peut-être foiré d'une manière ou d'une autre.

nano ~/.bashrc

Ajoutez la ligne export PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7"puis

source ~/.bashrc

Et essayez à nouveau votre mise à jour.


édité pour ajouter "export", c'est un peu nécessaire;)
Chuck R

Il indique "Impossible de localiser le paquet python-minimal2.7". Voulez-vous dire python2.7-minimal? Lorsque j'essaie de réinstaller python2.7-minimal, le même problème de dépendance se produit.
Java Xu

Hmm, désolé, il m'a fallu si longtemps pour vous répondre. Essayez sudo apt-get clean sudo apt-get update sudo apt-get upgrade.
Chuck R

1
J'ai peur que ça ne marche pas. Après clean, updateet upgrade, j'essaye de réinstaller python2.7-minimal, mais le même problème de dépendance apparaît et reinstalléchoue à nouveau.
Java Xu

On dirait que j'avais tort sur quel paquet. c'est en fait libpython2.7-minimal qui contient struct.py. Assurez-vous qu'il est installé. Quelle est la version actuelle de python2.7-minimal que vous avez installée? Astuce:dpkg -l | grep python2.7-minimal
Chuck R

1

Essaye ça

sudo apt purge libpython*

J'ai supprimé python2.7 et 3.7, puis supprimé les fichiers associés du système. Après cela, j'ai trouvé que je ne pouvais pas réinstaller python2.7 J'ai essayé de nombreuses méthodes qui ne fonctionnaient toujours pas, notamment:

supprimer les liens logiciels

del virtual env dirs

supprimer automatiquement

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

Ensuite, j'ai trouvé des fichiers libpython en recherchant l'ensemble du système python (ne pas rm les fichiers du répertoire si vous n'êtes pas sûr) libpython*.

J'espère que cela peut aider certaines personnes à rencontrer les mêmes problèmes


0

Je ne sais pas si cela va vous aider du tout, c'est un peu un coup de couteau dans le noir, mais assurez-vous que votre version Python par défaut est définie sur 2.7.

Il y a trois fichiers préoccupants dans / usr / bin:

python (symlink)
python2.7
python3 (symlink)

Si vous le faites, ls -l /usr/bin | grep pythonvous verrez à quoi pointe chaque lien symbolique.

Si cela vous montre python -> python3ou python -> python3.3qu'il y a quelque chose de mal. À ce stade, vous voudrez:

rm /usr/bin/python
ln -s /usr/bin/python2.7 /usr/bin/python

Merci pour votre réponse. Dans mon /usr/bin, pythonest lié à python2.7.
Java Xu du

Pourquoi est-ce? J'avais changé mon lien symbolique pour pointer vers python3.5, et cela a bouleversé une énorme quantité de paquets python et aptaussi. Pourquoi ne puis-je pas utiliser par défaut Python3? Quelle est la bonne façon?
quietContest
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.