为什么我在Mac OS X终端应用程序中键入时不显示标准输入?

时间:2009-08-19 18:44:57

标签: python django macos shell terminal

我对我的Mac OS X终端和我的Django manage.py shell和pdb的某些行为感到困惑。

当我启动一个新终端时,标准输入显示为我输入。但是,如果出现错误,屏幕上不会突然显示标准输入。此错误一直持续到我关闭该终端窗口为止。

我仍然可以捕获输入,因为我可以看到标准输出。

E.g。在pdb.set_trace()我无法显示我在代码中的位置。但是,'l'不会显示,只是空提示。

这使得调试变得困难,因为我无法确定我正在输入的内容。

可能出现什么问题,我该怎么做才能解决问题?

3 个答案:

答案 0 :(得分:21)

也许这是因为运行Django时出错了。有时会发生std输入消失,因为使用了stty。您可以通过键入以下内容手动隐藏输入:

$ stty -echo

现在你不会看到你输入的内容。要恢复此并解决您的问题,只需输入

即可

$ stty echo

这可能有所帮助。

答案 1 :(得分:3)

如果退出pdb,则可以键入reset,并返回标准输入echo。我不确定你是否可以在pdb中执行类似的操作。它会删除当前显示的内容。

答案 2 :(得分:-1)

尝试在Mac OS X上安装readline:

$ sudo easy_install readline

这是一个盲目的猜测,但也许它可以解决你的问题。