"ImportError: nessun modulo chiamato _struct" che configura python-minimal


10

Quando corro sudo apt-get upgrade, appare l'errore dpkg e interrompe il processo.

Dettagli circa l'errore:

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.

E questo problema porta a una serie di problemi di dipendenza durante l'elaborazione dei seguenti pacchetti:

 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

Finalmente, non posso fare nulla per questo problema. E diversi giorni dopo, la directory principale è piena e non ho potuto disinstallare alcun software a causa di questo problema.


possibile duplicato di askubuntu.com/q/270011/169736
Braiam,

@Braiam, ho già trovato questa domanda. Le risposte sono suggerite per reinstallare Python. Ho provato e fallito. Grazie comunque!
Java Xu,

sudo apt-get clean aiuta a recuperare un po 'di spazio
dal

Ho cambiato il mio /usr/bin/pythonlink simbolico per indicare python3.5e ha causato un errore molto simile a questo. Non so perché, probabilmente a che fare con i python2.7deps che si sono rotti quando ho cambiato il link simbolico senza preavviso. IDK, lasciandolo qui per i futuri viaggiatori
quietContest

Risposte:



1

OK, passando attraverso i pacchetti, ho scoperto che python-minimal non ha struct.py, ma python-minimal2.7 sì.

Quindi, prova questo e vedi se ti aiuta:

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

Se anche quello non funziona, forse il tuo $ PYTHONPATH è incasinato in qualche modo.

nano ~/.bashrc

Aggiungi la linea export PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7"quindi

source ~/.bashrc

E prova di nuovo l'aggiornamento.


modificato per aggiungere "export", è un po 'necessario;)
Chuck R

Dice "Impossibile trovare il pacchetto python-minimal2.7". Intendi python2.7-minimal? Quando provo a reinstallare python2.7-minimal, si verifica lo stesso problema di dipendenza.
Java Xu,

Hmm, mi dispiace che ci sia voluto tanto tempo per tornare da te. Prova sudo apt-get clean sudo apt-get update sudo apt-get upgrade.
Chuck R,

1
Temo che non funzioni. Dopo clean, updatee upgrade, quindi, provo a reinstallare python2.7-minimal, ma viene visualizzato lo stesso problema di dipendenza e il problema reinstallpersiste.
Java Xu,

Sembra che mi sbagliassi su quale pacchetto. è in realtà libpython2.7-minimal che contiene struct.py. Assicurati che sia installato. Qual è la versione corrente di python2.7-minimal che hai installato? Suggerimento:dpkg -l | grep python2.7-minimal
Chuck R

1

Prova questo

sudo apt purge libpython*

Ho rimosso python2.7 e 3.7, quindi ho eliminato i file correlati dal sistema. Dopo di che ho scoperto che non riesco a reinstallare python2.7 Ho provato molti metodi che non funzionano, tra cui:

rimuovere i collegamenti soft

del dir env virtuale

autoremove

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

Poi ho trovato alcuni file di libpython cercando l'intero sistema di Python (se non si è sicuri di non rm i file da dir.) Dopo aver rimosso i libpython*pacchetti (li ho rimossi uno per uno.), Python si è installato correttamente.

Spero che questo possa aiutare alcune persone ad avere gli stessi problemi


0

Non so se questo ti aiuterà, è un po 'una pugnalata al buio, ma assicurati che la tua versione predefinita di Python sia impostata su 2.7.

Ci sono tre file di interesse in / usr / bin:

python (symlink)
python2.7
python3 (symlink)

Se lo fai ls -l /usr/bin | grep pythonvedrai a cosa punta ogni link simbolico.

Se ti mostra python -> python3o python -> python3.3c'è qualcosa che non va. A questo punto vorrai:

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

Grazie per la tua risposta. Nel mio /usr/bin, pythonè soft-linkato a python2.7.
Java Xu,

Perchè è questo? Avevo cambiato il mio link simbolico per puntare a python3.5, e ha funzionato anche con un'enorme quantità di pacchetti python apt. Perché non riesco a impostare Python3 per impostazione predefinita? Qual è il modo corretto?
quietContest
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.