Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么标准输入在Mac OS X终端应用程序中不显示为I类型?_Python_Django_Macos_Shell_Terminal - Fatal编程技术网

Python 为什么标准输入在Mac OS X终端应用程序中不显示为I类型?

Python 为什么标准输入在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

我对MacOSX终端和Django
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即可。