Неопознанные команды в bash захватываются интерпретатором python

Каждый раз, когда я пытаюсь вызвать команду, которая не существует ( $ a , например) в консоли (/ bin / bash), интерпретатор ждет долгое время. И когда я прерываю его (^ C), я получаю сообщение об ошибке от интерпретатора Python. Вместо этого я ожидаю, что он скажет мне, что команда не распознана. Почему это происходит?

 $ a ^C Traceback (most recent call last): File "/usr/lib/python2.7/encodings/__init__.py", line 32, in <module> root@dell:/home/antonio/workspace/biz_index# from encodings import aliases File "/usr/lib/python2.7/encodings/aliases.py", line 17, in <module> """ KeyboardInterrupt ^C 

2 Solutions collect form web for “Неопознанные команды в bash захватываются интерпретатором python”

Если параметр PATH="" исправляет его, то что-то, где-то затеняет пакет python, который вызывается вызываемым command-not-found пакетом. Недавно я сделал это, написав скрипт struct.py . Вам нужно пройти через каждую директорию на своем пути, т.е.

 /home/antonio/.local/bin /home/antonio/.local/bin /usr/local/sbin /usr/local/bin‌​ /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games 

и ищите файлы .py . Один из них имеет имя с одним из встроенных пакетов Python. Кроме того, вы можете удалить каталоги из своего PATH и добавить их обратно до тех пор, пока не выясните, какой из них он сломал. Как только вы его найдете, вам нужно удалить его или переименовать.

Для этого сделайте однострочный вкладыш:

 for dir in $(echo $PATH | tr ":" "\n"); do ls -1 $dir | grep "[.]py"; done 

Вы можете проверить это в своей оболочке, попробовав следующее (воссоздавая мою ошибку из нескольких дней назад):

 echo 'print("HELLO WORLD")' >> struct.py 

Теперь в моей оболочке, находящейся в текущем каталоге, я вижу:

 ➜ client git:(master) ✗ a HELLO WORLD zsh: command not found: a 

Предположительно, скрипт Python, выполняющий затенение в вашем случае, делает что-то более ресурсоемкое, чем просто печать «HELLO WORLD», следовательно, висит.

Вы на машине ubuntu? У Ubuntu есть пакет, не найденный командой, который реализован в python, возможно, вы прервали это.

На вашем пути может быть сценарий с тем же именем, что и тот, который command-not-found пакетом, command-not-found . Если есть, этот скрипт, скорее всего, тот, кто делает висячие. Чтобы напечатать свой путь читаемым способом, запустите echo $PATH | tr -s ':' '\n' echo $PATH | tr -s ':' '\n' .

  • отправка кода из vim в stata
  • Создание репрезентативной выборки из большого CSV
  • Как создать новый файл на удаленном узле в базе данных (средство развертывания python)?
  • Скрипт для поиска дубликатов в файле csv
  • Группировка данных по значению столбца
  • Установка пипа в Pycharm 2016.3
  • Может ли скрипт python выполнять функцию внутри сценария bash?
  • Любой способ выполнить команду piped в Python с использованием модуля подпроцесса, не используя shell = True?
  • Python - лучший язык программирования в мире.