Почему стандартный ввод не отображается при вводе в приложении Mac OS X Terminal?
Я смущен некоторым поведением моего терминала Mac OS X и моей оболочки Django manage.py
и pdb.
Когда я запускаю новый терминал, стандартный ввод отображается по типу ввода. Однако, если есть ошибка, внезапно на экране не появляется стандартный ввод. Эта ошибка продолжается до тех пор, пока я не закрою это окно терминала.
Ввод все еще записывается, поскольку я вижу стандартный вывод.
например. in pdb.set_trace()
Я могу "l" показать, где я нахожусь в коде. Однако "l" не будет отображаться, просто пустое приглашение.
Это затрудняет отладку, потому что я не могу определить, что я набираю.
Что может быть не так, и что я могу сделать, чтобы исправить это?
Ответы
Ответ 1
Возможно, это потому, что при запуске Django произошла ошибка. Иногда бывает, что вход std исчезает, потому что используется stty
. Вы можете вручную скрыть свой ввод, набрав:
$ stty -echo
Теперь вы не увидите, что вы набрали. Чтобы восстановить это и решить вашу проблему, просто введите
$ stty echo
Это может помочь.
Ответ 2
Если вы выйдете из pdb, вы можете ввести reset, и будет возвращено стандартное входное эхо. Я не уверен, что вы можете выполнить что-то подобное в pdb. Тем не менее, он стирает то, что в настоящее время отображается.
Ответ 3
Попробуйте установить readline в Mac OS X:
$ sudo easy_install readline
Это слепая догадка, но, возможно, она решает вашу проблему.