Python 为什么标准输入在Mac OS X终端应用程序中不显示为I类型?
我对MacOSX终端和DjangoPython 为什么标准输入在Mac OS X终端应用程序中不显示为I类型?,python,django,macos,shell,terminal,Python,Django,Macos,Shell,Terminal,我对MacOSX终端和Djangomanage.pyshell和pdb的某些行为感到困惑 当我启动一个新终端时,标准输入显示为I类型。但是,如果出现错误,屏幕上会突然出现标准输入。这个错误一直持续到我关闭终端窗口为止 输入仍然被捕获,因为我可以看到标准输出 例如,在pdb.set_trace()中,我可以“l”来显示我在代码中的位置。但是,不会显示“l”,只是一个空提示 这使得调试变得很困难,因为我无法确定输入的内容 可能出现什么问题?我可以做些什么来修复它?尝试在Mac OS X上安装read
manage.py
shell和pdb的某些行为感到困惑
当我启动一个新终端时,标准输入显示为I类型。但是,如果出现错误,屏幕上会突然出现标准输入。这个错误一直持续到我关闭终端窗口为止
输入仍然被捕获,因为我可以看到标准输出
例如,在pdb.set_trace()
中,我可以“l”来显示我在代码中的位置。但是,不会显示“l”,只是一个空提示
这使得调试变得很困难,因为我无法确定输入的内容
可能出现什么问题?我可以做些什么来修复它?尝试在Mac OS X上安装readline:
$ sudo easy_install readline
这是一个盲目的猜测,但也许它解决了您的问题。如果您退出pdb,您可以键入reset,标准输入回波将返回。我不确定您是否可以在pdb中执行类似的操作。但它将删除当前显示的内容。可能是因为运行Django时出错。有时,std输入会消失,因为使用了
stty
。您可以通过键入以下内容手动隐藏输入:
$stty-echo
现在您将看不到您键入的内容。要恢复此功能并解决问题,只需键入
$stty echo
这可能会有所帮助。请定义“但是,如果有错误”,什么错误?哪里你闲着吗?从python
>>
提示符运行?具体来说,发生了什么?很明显,一个过程已经重置了终端。问题是:哪一个?我正在运行python交互式shell:我相信导致这个错误的原因是:错误:[Errno 32]管道损坏如果我的开发服务器已经运行了一段时间,我在Ubuntu shell中也遇到了类似的问题。可能存在某种最大缓冲区,以防止进一步键入的字符出现。只需打开一个新的终端或键入clear即可。