“ImportError: nenhum módulo chamado _struct” configurando python-minimal


10

Quando executo sudo apt-get upgrade, o erro do dpkg aparece e interrompe o processo.

Detalhes do erro:

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 esse problema leva a uma série de problemas de dependência ao processar os seguintes pacotes:

 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 que eu possa fazer por esse problema. E vários dias depois, o diretório raiz está cheio e eu nem consegui desinstalar nenhum software por causa desse problema.


possível duplicado de askubuntu.com/q/270011/169736
Braiam

@ Braiam, eu encontrei essa pergunta antes. As respostas são sugeridas para reinstalar o python. Eu tentei e falhei. Obrigado mesmo assim!
Java Xu

sudo apt-get clean ajuda para obter algum espaço de volta
frlan

/usr/bin/pythonMudei meu link simbólico para apontar python3.5e causou um erro muito semelhante a isso. Não sei por que, provavelmente com relação a python2.7deps que foram quebrados quando mudei o link simbólico sem aviso. IDK, deixando isso aqui para futuros viajantes
quietContest

Respostas:



1

OK, examinando os pacotes, descobri que python-minimal não possui struct.py, mas python-minimal2.7.

Então, tente isso e veja se isso ajuda você:

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

Se mesmo isso não funcionar, talvez o seu $ PYTHONPATH esteja estragado de alguma forma.

nano ~/.bashrc

Adicione a linha export PYTHONPATH="${PYTHONPATH}:/usr/lib/python2.7"então

source ~/.bashrc

E tente sua atualização novamente.


editadas para acrescentar "exportação", é uma espécie de necessário;)
Chuck R

Ele diz "Não foi possível localizar o pacote python-minimal2.7". Você quer dizer python2.7-minimal? Quando tento reinstalar o python2.7-minimal, o mesmo problema de dependência ocorre.
Java Xu

Desculpe, demorou tanto tempo para eu voltar para você. Tente sudo apt-get clean sudo apt-get update sudo apt-get upgrade.
Chuck R

1
Receio que não funcione. Depois clean, updatee upgrade, em seguida, eu tento reinstalar python2.7-minimal, mas os mesmos aparece problema de dependência ea reinstallfalhar novamente.
Java Xu

Parece que eu estava errado sobre qual pacote. Na verdade, é o libpython2.7-minimal que contém o struct.py. Verifique se está instalado. Qual é a versão atual do python2.7-minimal que você instalou? Dica:dpkg -l | grep python2.7-minimal
Chuck R

1

Tente isto

sudo apt purge libpython*

Eu removi o python2.7 e 3.7 e excluí os arquivos relacionados do sistema. Depois disso, descobri que não consigo reinstalar o python2.7 Tentei muitos métodos ainda não funcionando, incluindo:

remover links flexíveis

dirs do ambiente virtual

autoremove

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

Então eu encontrei alguns arquivos libpython pesquisando o sistema inteiro python (não remova os arquivos rm de dir, se você não tiver certeza.) Após remover os libpython*pacotes (eu os removi um por um), o python foi instalado com êxito.

Espero que isso possa ajudar algumas pessoas a ter os mesmos problemas


0

Não sei se isso vai ajudá-lo, é uma facada no escuro, mas verifique se a sua versão padrão do Python está definida como 2.7.

Existem três arquivos de preocupação em / usr / bin:

python (symlink)
python2.7
python3 (symlink)

Se você fizer ls -l /usr/bin | grep pythonisso, verá o que cada link simbólico aponta.

Se isso lhe mostra python -> python3ou python -> python3.3há algo errado. Neste ponto, você desejará:

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

Obrigado pela sua resposta. No meu /usr/bin, pythonestá vinculado a soft python2.7.
Java Xu

Por que é isso? Eu havia mudado meu link simbólico para apontar python3.5, e isso gerou uma enorme quantidade de pacotes python apttambém. Por que não posso usar como padrão o Python3? Qual é o caminho correto?
usar o seguinte código
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.