python3 erro de traceback

3

Sempre que eu digitar errado qualquer comando no terminal, em vez de obter Error:Command not found , recebo este erro de mensagem python

    Traceback (most recent call last):
  File "/usr/lib/python3.3/site.py", line 631, in <module>
    main()
  File "/usr/lib/python3.3/site.py", line 616, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/lib/python3.3/site.py", line 284, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/lib/python3.3/site.py", line 260, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/lib/python3.3/site.py", line 250, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/lib/python3.3/sysconfig.py", line 580, in get_config_var
    return get_config_vars().get(name)
  File "/usr/lib/python3.3/sysconfig.py", line 530, in get_config_vars
    _init_posix(_CONFIG_VARS)
  File "/usr/lib/python3.3/sysconfig.py", line 403, in _init_posix
    from _sysconfigdata import build_time_vars
  File "/usr/lib/python3.3/_sysconfigdata.py", line 6, in <module>
    from _sysconfigdata_m import *
ImportError: No module named '_sysconfigdata_m'

Eu sei que depois de instalar o python3.x e tentar torná-lo meu intérprete padrão, esse erro ocorreu dessa maneira.

$ lsb_release -rd
Description:    Linux Mint 14 Nadia
Release:    14

/usr/lib/command-not-found está funcionando bem também.
Posso voltar para a minha versão padrão do python? simplesmente eu fiz

sudo ln -sf /usr/bin/python2.7 /usr/local/bin/python

é suficiente para obter 2.7 como intérprete padrão?
Alguma idéia de como se livrar desse erro de mensagem do inferno?

    
por wisdom 19.10.2013 / 22:09

2 respostas

1

Alterar o interpretador Python padrão em uma distribuição derivada do Ubuntu é uma Idéia Ruim. Muitos utilitários do sistema esperam que python resolva a versão esperada e fique muito infeliz quando isso não acontecer.

Melhor seria (obviamente dependente do shell):

export PATH="${HOME}/bin:${PATH}"
ln -s /usr/bin/python2.7 $HOME/bin/python

tornando seu intérprete padrão, mas deixando os utilitários do sistema como eles esperam.

adicionado em resposta ao comentário

Meu primeiro palpite sobre por que isso não funcionou é que você não limpou completamente as alterações feitas por você.

sudo rm /usr/local/bin/python
sudo apt-get install --reinstall python

Deve-se esclarecer as alterações que você relatou aqui e restaurar o interpretador Python padrão de distribuição como o padrão para todo o sistema.

Em seguida, remova seu alias de usuário que sugeri que você faça acima:

rm $HOME/bin/python

E verifique se você ainda obtém o traceback do Python quando um comando shell não é encontrado. Se você ainda obtiver o rastreamento, não consigo pensar em um mecanismo padrão que faça com que isso aconteça. Portanto, você precisará nos fornecer mais informações sobre qual shell está usando (presumivelmente bash) e adicionar a saída dos comandos

complete | grep python
alias | grep python
python -V

à sua pergunta.

    
por 19.10.2013 / 23:50
0

Este é realmente um bug na distribuição do Ubuntu, como discutido em stackoverflow e launchpad .

A correção é corrigir seu arquivo /etc/bash.bashrc , alterando a linha python /usr/lib/command-not-found -- $1 para usr/lib/command-not-found -- $1 .

    
por 13.07.2015 / 23:56