【问题标题】:Why is Standard Input is not displayed as I type in Mac OS X Terminal application?为什么我在 Mac OS X 终端应用程序中键入时不显示标准输入?
【发布时间】:2010-11-21 01:47:12
【问题描述】:

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

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

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

例如在pdb.set_trace() 我可以'l' 来显示我在代码中的位置。但是,不会显示“l”,只是一个空提示。

这使得调试变得困难,因为我无法确定我在输入什么。

可能出了什么问题,我能做些什么来解决它?

【问题讨论】:

  • 请定义“但是,如果有错误,”什么错误?在哪里?你在空闲吗?从 python >>> 提示符运行?什么——具体来说——正在发生什么?显然,一个进程重置了您的终端。问题是:哪一个?
  • 我正在运行 python 交互式 shell:我相信导致此的错误是:错误:[Errno 32] Broken pipe
  • 如果我的开发服务器已经运行了一段时间,我在 Ubuntu shell 中遇到了类似的问题。可能有某种最大缓冲区会阻止进一步键入的字符出现。只需打开一个新终端或输入 clear。

标签: python django macos shell terminal


【解决方案1】:

尝试在 Mac OS X 上安装 readline:

$ sudo easy_install readline

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      $ stty -echo

      现在您将看不到您输入的内容。要恢复它并解决您的问题,只需键入

      $ stty echo

      这会有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-01
        • 2016-06-22
        • 1970-01-01
        • 2020-05-21
        • 1970-01-01
        • 2016-08-10
        • 2011-05-10
        • 2018-06-22
        相关资源
        最近更新 更多