"ImportError: ningún módulo llamado _struct" configurando python-minimal


10

Cuando ejecuto sudo apt-get upgrade, aparece el error dpkg e interrumpe el proceso.

Error de detalles:

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.

Y este problema conduce a una serie de problemas de dependencia al procesar los siguientes paquetes:

 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, nada puedo hacer por este problema. Y varios días después, el directorio raíz está lleno e incluso no pude desinstalar ningún software debido a este problema.


posible duplicado de askubuntu.com/q/270011/169736
Braiam

@Braiam, he encontrado esta pregunta antes. Se sugieren las respuestas para reinstalar Python. Lo intenté y fallé. ¡Gracias de cualquier manera!
Java Xu

sudo apt-get clean ayuda a conseguir un poco de espacio hacia atrás
Frlan

Cambié mi /usr/bin/pythonenlace simbólico para señalar python3.5y causó un error muy similar a esto. No estoy seguro de por qué, probablemente tenga que ver con tener python2.7deps que se rompieron cuando cambié el enlace simbólico sin previo aviso. IDK, dejando esto aquí para futuros viajeros
quietContest

Respuestas:



1

Bien, revisando los paquetes, descubrí que python-minimal no tiene struct.py, pero python-minimal2.7 sí.

Entonces, intente esto y vea si le ayuda:

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

Si incluso eso no funciona, tal vez tu $ PYTHONPATH esté desordenado de alguna manera.

nano ~/.bashrc

Agrega la línea export PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7"entonces

source ~/.bashrc

E intente su actualización una vez más.


editado para agregar "exportar", es necesario;)
Chuck R

Dice "No se puede localizar el paquete python-minimal2.7". ¿Te refieres a python2.7-minimal? Cuando intento reinstalar python2.7-minimal, ocurre el mismo problema de dependencia.
Java Xu

Hmm, lo siento, me tomó tanto tiempo volver a contactarte. Tratar sudo apt-get clean sudo apt-get update sudo apt-get upgrade.
Chuck R

1
Me temo que no funciona. Después clean, updatey upgradeluego trato de reinstalar python2.7-minimal, pero aparece el mismo problema de dependencia y reinstallfalla nuevamente.
Java Xu

Parece que me equivoqué sobre qué paquete. en realidad es libpython2.7-minimal que contiene struct.py. Asegúrate de que esté instalado. ¿Cuál es la versión actual de python2.7-minimal que ha instalado? Sugerencia:dpkg -l | grep python2.7-minimal
Chuck R

1

Prueba esto

sudo apt purge libpython*

Eliminé python2.7 y 3.7, luego eliminé los archivos relacionados del sistema. Después de eso, descubrí que no puedo reinstalar python2.7. Probé muchos métodos que todavía no funcionan, incluidos:

eliminar enlaces blandos

del virtual env dirs

movimiento automático

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

Luego encontré algunos archivos libpython buscando en todo el sistema de Python. (No rm archivos del directorio si no está seguro.) Después de eliminar los libpython*paquetes (los eliminé uno por uno), Python se instaló con éxito.

Espero que esto pueda ayudar a algunas personas a tener los mismos problemas


0

No sé si esto te ayudará en absoluto, es una especie de puñalada en la oscuridad, pero asegúrate de que tu versión predeterminada de Python esté configurada en 2.7.

Hay tres archivos de interés en / usr / bin:

python (symlink)
python2.7
python3 (symlink)

Si lo haces ls -l /usr/bin | grep python, verás a qué apunta cada enlace simbólico.

Si te muestra python -> python3o python -> python3.3hay algo mal. En este punto, querrás:

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

Gracias por su respuesta. En mi /usr/bin, pythonestá vinculado a soft python2.7.
Java Xu

¿Por qué es esto? Había cambiado mi enlace simbólico al python3.5que apuntaba, y también borró una gran cantidad de paquetes de Python apt. ¿Por qué no puedo usar Python3 de manera predeterminada? ¿Cuál es la manera correcta?
quietContest
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.