Всякий раз, когда я набираю какую-либо «бессмысленную» команду, генерируется это сообщение об ошибке Python. Обычные команды работают нормально. Есть идеи, как это отладить?
$ 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
$
РЕДАКТИРОВАТЬ - после исправления моего / usr / bin / python, я теперь получаю это другое сообщение об ошибке Python:
$ yetanothernonexistingcommand
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 10, in <module>
import CommandNotFound
ImportError: No module named CommandNotFound
Каким-то образом python запускается всякий раз, когда я набираю команду неправильно.
Ответы:
Хорошо, это проясняет ситуацию.
command-not-found
это программа на питоне, которая запускается, когда ваша команда не найдена в системе (Его функция - предлагать альтернативы и исправления в случае опечатки и т. Д.). См/usr/bin/command-not-found
. Он пытается импортироватьCommandNotFound
модуль и не может, явно указывая на испорченную установку python. Я не очень знаком с этимcommand-not-found
, но я думаю, что исправление вашей установки Python решит проблему.Просто, чтобы уточнить, вероятно, происходит то, что
command-not-found
модуль находится где-то там, где ваш Python по умолчанию его не ищет. Проблема пути, в основном.Предложения отладки:
1) Для начала, каков выход
и к какому пакету / установке принадлежит этот файл?
2) Какой вывод для вашей установки соответствует приведенному ниже коду? Путь здесь - путь импорта этого питона.
источник
# apt-get remove command-not-found
...command-not-found
кажутся неработающими (хотя трудно сказать, является ли «ошибка» ожидаемым результатом при поиске «команда не найдена» ...)Я столкнулся с этим, когда обновил версию 2.6, поставляемую с моей установкой Ubuntu, до версии python 3.2, установив альтернативу по умолчанию 3.2, а не 2.6.
Если вы посмотрите на свой
/etc/bash.bashrc
файл, есть строка, которая говорит ему запустить этот скрипт на python для поиска альтернатив в репозиториях. Существует пакет для него, однако вы не можете удалить пакет после обновления. Я просто переехал/usr/share/command-not-found
и/usr/lib/command_not_found_handler
и перезапустить свой срок , и он работает как хороший Ol»Баш:command not found
.источник
command_not_found
обработчик, не связывайтесь с ним/usr
(это может привести к сбою последующих обновлений или отмене последующих обновлений). Вместо этого измени/etc/bash.bashrc
. Или отключить это самостоятельно~/.bashrc
сunset -f command_not_found_handle
./etc/bash.bashrc
предоставляетсяbash
пакетом, чтобы вы могли нарушать обновления этого пакета.У меня была такая же ошибка после установки Python 3.5.0 на мою Ubuntu 14.04 LTS (у которой есть системный питон версии 3.4.0).
После того, как я открыл
/usr/lib/command-not-found
, я понял, что эта ошибка происходит из-за того, что система выполняет этот скрипт с использованием недавно установленного python3.5.0, потому что установка Python3.5.0 создает, заставляет систему использовать его при вводеpython3
.Эту ошибку можно легко исправить, изменив первую строку с
в
источник
Проблема связана с вашей
$PATH
переменной среды. Скорее всего, вы все испортили. Это должно быть похоже на это:См. Эту ветку Linux Mint: http://forums.linuxmint.com/viewtopic.php?f=18&t=119561 .
Вы можете восстановить ваш
$PATH
в оболочке с помощью этой команды:Это временно! Если проблема не устраняется после перезагрузки, скорее всего, вы использовали
$PATH
в одном из ваших файлов установки среды/etc
.источник
Пакет "команда не найдена" - это утилита linux; он отвечает на неизвестные команды в командной строке, а не только в сеансах Python. (Я вижу, что есть также пакет Python с этим именем.)
Он имеет Python среди своих зависимостей, то есть он использует Python при запуске; Это объясняет, почему Python вызывается всякий раз, когда вы вводите команду, которую оболочка не может найти в вашем PATH.
Я вижу, что есть пакет 'apt' для установки команды not-found в Linux; для Debian Linux это каталогизировано по адресу:
https://packages.debian.org/sid/admin/command-not-found
источник
Комментируя все строки ответственности за
command-not-found
в/etc/bash.bashrc
решить проблему, которая была создана путем переключения версий Python.источник