我对我的Mac OS X终端和我的Django manage.py
shell和pdb的某些行为感到困惑。
当我启动一个新终端时,标准输入显示为我输入。但是,如果出现错误,屏幕上不会突然显示标准输入。此错误一直持续到我关闭该终端窗口为止。
我仍然可以捕获输入,因为我可以看到标准输出。
E.g。在pdb.set_trace()
我无法显示我在代码中的位置。但是,'l'不会显示,只是空提示。
这使得调试变得困难,因为我无法确定我正在输入的内容。
可能出现什么问题,我该怎么做才能解决问题?
答案 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
这是一个盲目的猜测,但也许它可以解决你的问题。