Sempre que eu digito qualquer comando "sem sentido", essa mensagem de erro python é gerada. Comandos normais funcionam bem. Alguma idéia de como depurar isso?
$ somenonexistingcommand
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site.py", line 553, in <module>
main()
File "/usr/local/lib/python2.7/site.py", line 535, in main
known_paths = addusersitepackages(known_paths)
File "/usr/local/lib/python2.7/site.py", line 268, in addusersitepackages
user_site = getusersitepackages()
File "/usr/local/lib/python2.7/site.py", line 243, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/usr/local/lib/python2.7/site.py", line 233, in getuserbase
USER_BASE = get_config_var('userbase')
File "/usr/local/lib/python2.7/sysconfig.py", line 535, in get_config_var
return get_config_vars().get(name)
File "/usr/local/lib/python2.7/sysconfig.py", line 434, in get_config_vars
_init_posix(_CONFIG_VARS)
File "/usr/local/lib/python2.7/sysconfig.py", line 298, in _init_posix
raise IOError(msg)
IOError: invalid Python installation: unable to open /usr/include/python2.7/pyconfig.h (No such file or directory)
$ echo this works fine, however
this works fine, however
$
EDIT - depois de corrigir meu / usr / bin / python, agora recebo esta mensagem de erro diferente do python:
$ yetanothernonexistingcommand
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 10, in <module>
import CommandNotFound
ImportError: No module named CommandNotFound
De alguma forma, python está sendo executado sempre que eu digitar um comando errado.
Respostas:
Ok, isso torna as coisas um pouco mais claras.
command-not-found
é um programa python, que é executado quando seu comando não é encontrado no sistema. (Sua função é sugerir alternativas e correções em caso de digitação incorreta, etc.) Veja/usr/bin/command-not-found
. Ele está tentando importar oCommandNotFound
módulo e não pode, apontando claramente para uma instalação em python danificada. Não sou tão familiarizado com issocommand-not-found
, mas acho que corrigir a instalação do Python fará com que o problema desapareça.Apenas para elaborar um pouco, o que provavelmente está acontecendo é que o
command-not-found
módulo está localizado em algum lugar onde o python padrão não está procurando por ele. Um problema de caminho, basicamente.Sugestões de depuração:
1) Para começar, qual é a saída de
e a que pacote / instalação esse arquivo pertence?
2) Qual é a saída da sua instalação correspondente ao código abaixo? O caminho aqui é o caminho de importação desse python.
fonte
# apt-get remove command-not-found
...command-not-found
parecer quebrado (embora seja difícil dizer se "erro" é o resultado esperado quando procurar "-not-found comando" ...)Eu me deparei com isso quando atualizei do estoque 2.6 que veio com a minha instalação do ubuntu para o python 3.2, definindo a alternativa padrão como 3.2 em vez de 2.6.
Se você olhar para o seu
/etc/bash.bashrc
arquivo, há uma linha que diz para executar esse script python e procurar alternativas nos repositórios. Existe um pacote para ele, no entanto, você não pode removê-lo após a atualização. Eu simplesmente mudou o/usr/share/command-not-found
e/usr/lib/command_not_found_handler
e reiniciado o meu mandato e funciona como bom ol bash':command not found
.fonte
command_not_found
manipulador, não mexa/usr
(isso pode fazer com que as atualizações subseqüentes falhem ou sejam desfeitas pelas atualizações subseqüentes). Em vez disso, mude/etc/bash.bashrc
. Ou desative isso sozinho~/.bashrc
comunset -f command_not_found_handle
./etc/bash.bashrc
é fornecido pelobash
pacote, para que você possa interromper as atualizações desse pacote.Eu tive esse mesmo erro depois de instalar o Python 3.5.0 no meu Ubuntu 14.04 LTS (que possui um python do sistema da versão 3.4.0).
Depois de abrir o
/usr/lib/command-not-found
arquivo, percebi que esse erro se deve ao sistema executando este script usando o python3.5.0 recém-instalado, porque a instalação do Python3.5.0 cria leva o sistema a usá-lo quando você digitapython3
.Este erro pode ser facilmente corrigido alterando a primeira linha de
para
fonte
O problema está na sua
$PATH
variável de ambiente. Você provavelmente estragou tudo. Deve ser semelhante a este:Consulte este tópico do Linux Mint: http://forums.linuxmint.com/viewtopic.php?f=18&t=119561 .
Você pode reparar o seu
$PATH
no shell com este comando:Isto é temporário! Se o problema persistir com uma reinicialização, é provável que você tenha hospedado o
$PATH
arquivo em um dos arquivos de configuração do ambiente em/etc
.fonte
O pacote "command-not-found" é um utilitário linux; ele responde a comandos desconhecidos no prompt do shell de comandos, não apenas nas sessões python. (Vejo que também há um pacote python com esse nome.)
Possui python entre suas dependências, ou seja, usa python quando acionado; de modo que explique por que o python é chamado sempre que você digita um comando que o shell não pode encontrar no seu PATH.
Vejo que há um pacote 'apt' para instalar o comando não encontrado no Linux; para o Debian linux, isso está catalogado em:
https://packages.debian.org/sid/admin/command-not-found
fonte
Comentando todas as linhas responsável
command-not-found
em/etc/bash.bashrc
resolver o problema, que foi criado por comutação versões Python.fonte