'ImportError: No module named _struct' ao gerenciar pacotes

6

Estou executando o elementary OS 0.2 (baseado no Ubuntu 12.04) e, a partir de hoje, estou vendo um erro estranho ao tentar instalar / atualizar pacotes. Só agora, por exemplo, eu fiz um:

sudo apt-get update

que funcionou bem, seguido de um:

sudo apt-get upgrade

que tentou retornar isso:

Setting up idle-python2.7 (2.7.3-0ubuntu3.5) ...
Traceback (most recent call last):
  File "/usr/lib/python2.7/compileall.py", line 16, in <module>
    import struct
  File "/usr/lib/python2.7/struct.py", line 1, in <module>
    from _struct import *
ImportError: No module named _struct
dpkg: error processing idle-python2.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 idle-python2.7
E: Sub-process /usr/bin/dpkg returned an error code (1)

O que está acontecendo? Obviamente, isso está relacionado ao pacote python , mas ainda posso executar python scripts sem problemas. Como posso consertar isso?

Adicionar

Seguindo o conselho dado na resposta, tentei:

sudo apt-get --reinstall install python python-support

Isso retornou:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 2 reinstalled, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/192 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 864980 files and directories currently installed.)
Preparing to replace python 2.7.3-0ubuntu2.2 (using .../python_2.7.3-0ubuntu2.2_i386.deb) ...
Unpacking replacement python ...
Preparing to replace python-support 1.0.14ubuntu2 (using .../python-support_1.0.14ubuntu2_all.deb) ...
Unpacking replacement python-support ...
Processing triggers for man-db ...
Processing triggers for doc-base ...
Processing 1 changed doc-base file...
Registering documents with scrollkeeper...
Setting up idle-python2.7 (2.7.3-0ubuntu3.5) ...
Traceback (most recent call last):
  File "/usr/lib/python2.7/compileall.py", line 16, in <module>
    import struct
  File "/usr/lib/python2.7/struct.py", line 1, in <module>
    from _struct import *
ImportError: No module named _struct
dpkg: error processing idle-python2.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up python (2.7.3-0ubuntu2.2) ...
Setting up python-support (1.0.14ubuntu2) ...
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site.py", line 548, in <module>
    main()
  File "/usr/local/lib/python2.7/site.py", line 530, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/local/lib/python2.7/site.py", line 266, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/local/lib/python2.7/site.py", line 241, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/local/lib/python2.7/site.py", line 231, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/local/lib/python2.7/sysconfig.py", line 516, in get_config_var
    return get_config_vars().get(name)
  File "/usr/local/lib/python2.7/sysconfig.py", line 449, in get_config_vars
    import re
  File "/usr/local/lib/python2.7/re.py", line 105, in <module>
    import sre_compile
  File "/usr/local/lib/python2.7/sre_compile.py", line 14, in <module>
    import sre_parse
  File "/usr/local/lib/python2.7/sre_parse.py", line 17, in <module>
    from sre_constants import *
  File "/usr/local/lib/python2.7/sre_constants.py", line 18, in <module>
    from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT
Errors were encountered while processing:
 idle-python2.7
E: Sub-process /usr/bin/dpkg returned an error code (1)

então é um não ir.

    
por Gabriel 13.08.2014 / 21:07

3 respostas

1

Encontrei uma maneira de resolver esse problema simplesmente removendo o idle-python2.7 package:

sudo apt-get remove idle-python2.7  

como declarado aqui .

    
por 18.08.2014 / 16:12
3

Pesquisas por isso fazem algumas coisas para tentar.

  1. Reinstale o python

    Encontrado este link: Broken python (2.7) depois de manualmente construindo e instalando o python 2.6 . A sugestão foi reinstalar da seguinte forma:

    $ sudo apt-get --reinstall install python python-support
    
  2. Verifique se o aplicativo de atualização de software está ativado para internet

    Encontrei este link: mais problemas de dependência de pacotes, sempre consigo muitos problemas depois de uma nova instalação .

    face palm I went into update manager/settings Ubuntu software tab and re-enabled all downloadable from internet buttons.

por 14.08.2014 / 01:55
1

A resposta é simples. Seu sistema está mal configurado. Você fez uma instalação local de pacotes Python básicos. Isso é um não-não. Você deve instalar os pacotes binários base do Python a partir do seu repositório de distribuições. Em particular, sua instalação em Python está procurando por arquivos como lib/python2.7/site.py e lib/python2.7/sysconfig.py em /usr/local , mas esses arquivos fazem parte do pacote básico do Python python2.7-minimal , ou possivelmente libpython2.7-minimal , dependendo da versão do Debian / Ubuntu sua distribuição corresponde a.

De qualquer forma, a solução é simples. Remova os pacotes Python base instalados localmente e instale os pacotes Python básicos da sua distribuição. Se o software não estiver disponível em sua distribuição, , em seguida, , o instalará localmente. Não há muito sentido em usar uma distribuição se você não usar os pacotes deles.

O que faz

apt-cache policy python2.7-minimal libpython2.7-minimal python2.7

diz? Dois desses devem estar instalados no seu sistema.

    
por 18.08.2014 / 17:34