Cada vez que escribo cualquier comando "sin sentido", se genera este mensaje de error de Python. Los comandos normales funcionan bien. ¿Alguna idea de cómo depurar esto?
$ 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
$
EDITAR : después de arreglar mi / usr / bin / python, ahora recibo este mensaje de error diferente de 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 alguna manera, python se ejecuta cada vez que escribo mal un comando.
Respuestas:
Ok, eso aclara un poco las cosas.
command-not-found
es un programa de Python, que se ejecuta cuando su comando no se encuentra en el sistema. (Su función es sugerir alternativas y correcciones en caso de escribir mal, etc.) Ver/usr/bin/command-not-found
. Está intentando importar elCommandNotFound
módulo y no puede hacerlo, apuntando claramente a una instalación de Python arruinada. No estoy tan familiarizadocommand-not-found
, pero creo que arreglar la instalación de Python hará que el problema desaparezca.Solo para explicar un poco, lo que probablemente esté sucediendo es que el
command-not-found
módulo se encuentra en algún lugar donde su python predeterminado no lo está buscando. Un problema de ruta, básicamente.Sugerencias de depuración:
1) Para empezar, ¿cuál es la salida de
¿Y a qué paquete / instalación pertenece ese archivo?
2) ¿Cuál es el resultado de su instalación correspondiente al código a continuación? El camino aquí es el camino de importación de este pitón.
fuente
# apt-get remove command-not-found
...command-not-found
parecen estar rotos (aunque es difícil saber si "error" es el resultado esperado cuando se busca "comando no encontrado" ...)Me encontré con esto cuando actualicé desde el stock 2.6 que vino con mi instalación de ubuntu a la python 3.2, con la configuración de la alternativa predeterminada a 3.2 en lugar de 2.6.
Si observa su
/etc/bash.bashrc
archivo, hay una línea que le indica que ejecute este script de Python para buscar alternativas en los repositorios. Hay un paquete para él, sin embargo, no puede eliminar el paquete una vez que lo haya actualizado. Yo simplemente moví la/usr/share/command-not-found
y/usr/lib/command_not_found_handler
, y reinicia el plazo y funciona como una buena fiesta ol':command not found
.fuente
command_not_found
controlador, no se meta/usr
(eso puede hacer que las actualizaciones posteriores fallen o se deshagan con las actualizaciones posteriores). En cambio, cambie/etc/bash.bashrc
. O deshabilite esto por su cuenta~/.bashrc
conunset -f command_not_found_handle
./etc/bash.bashrc
es proporcionado por elbash
paquete, por lo que podría romper las actualizaciones de ese paquete.Tuve este mismo error después de instalar Python 3.5.0 en mi Ubuntu 14.04 LTS (que tiene un sistema python de la versión 3.4.0).
Después de abrir el
/usr/lib/command-not-found
, me di cuenta de que este error se debe a que el sistema ejecutó este script usando el nuevo python3.5.0 instalado, porque la instalación de Python3.5.0 crea el sistema para que lo use cuando escribepython3
.Este error se puede corregir fácilmente cambiando la primera línea de
a
fuente
El problema es con su
$PATH
variable de entorno. Lo más probable es que lo hayas estropeado. Debería ser similar a esto:Vea este hilo de Linux Mint: http://forums.linuxmint.com/viewtopic.php?f=18&t=119561 .
Puede reparar su
$PATH
en el shell con este comando:¡Esto es temporal! Si el problema persiste con un reinicio, lo más probable es que haya alojado
$PATH
en uno de los archivos de configuración de su entorno/etc
.fuente
El paquete "comando no encontrado" es una utilidad de Linux; responde a comandos desconocidos en el indicador de comandos, no solo dentro de las sesiones de Python. (Veo que también hay un paquete de Python con este nombre).
Tiene python entre sus dependencias, es decir, usa python cuando se activa; así que eso explica por qué se invoca python cada vez que escribe un comando que el shell no puede encontrar en su RUTA.
Veo que hay un paquete 'apto' para instalar el comando no encontrado en Linux; para Debian Linux, esto está catalogado en:
https://packages.debian.org/sid/admin/command-not-found
fuente
Al comentar todas las líneas responsable de
command-not-found
en/etc/bash.bashrc
resolver el problema, el cual fue creado por el cambio versiones de Python.fuente