【问题标题】:Line-wrapping problems with IPython shellIPython shell 的换行问题
【发布时间】:2009-03-22 09:40:21
【问题描述】:

如果我在 IPython 中运行了很长的一行,并尝试在当前行的开头重新调用它(使用向上箭头)或退格键,它会显示不正确(全部变成一行)

例如,在接下来的会话中,我写了一个很长的行[1],输入了一个有点空白的行[2],然后向上箭头两次以得到print[3] 上的语句,以及以下发生了:

发生在 iTerm 和 Terminal.app 中。我在常规终端会话中遇到了类似的问题,已通过正确终止颜色代码解决了这个问题,但我不确定如何使用 IPython 解决它

【问题讨论】:

  • 这个问题困扰了我很久......直到现在我才意识到,是 IPython 导致了这个问题。尝试了“reset”、“tput”、“shopt -s checkwinsize”、重置 PS1、tmux resize-pane、escape chars 魔法,但都是徒劳的。现在我知道,只有在从 TMux 调用 IPython 并且 IPython 被杀死或发送到后台(CTRL+Z)时才会发生这种情况。

标签: python terminal ipython


【解决方案1】:

啊哈!我有一个旧版本的 Python readline 模块 - 从 http://ipython.scipy.org/dist/ 安装最新版本,它运行良好!

sudo easy_install http://ipython.scipy.org/dist/readline-2.5.1-py2.5-macosx-10.5-i386.egg

【讨论】:

  • 确保你使用的是easy_install,而不是pip。我尝试了“pip install readline”,虽然安装了 readline,但 ipython 仍然存在问题。我卸载了,然后用easy_install,问题就解决了。
  • 刚刚尝试过,pip install readline 现在可以正常工作并为我解决了问题..
  • 在我的 Linux Mint 安装中 pip install readline 要求我首先使用 apt-get install libncurses5-dev 安装 libncurses。
【解决方案2】:

在雪豹上遇到了这个问题。从http://pypi.python.org/pypi/readline/ 安装新版本的 readline 可以修复它:

sudo easy_install http://pypi.python.org/packages/2.6/r/readline/readline-2.6.4-py2.6-macosx-10.6-universal.egg

【讨论】:

  • 我的库存雪豹有python2.6.1,2.6.4版本不行。此外,这里是使用备用镜像的链接,因为主要 pypi 最近很慢。 sudo easy_install d.pypi.python.org/packages/2.6/r/readline/…
  • 好点。我应该补充一点,我使用的是 MacPorts 版本的 python——运行“python_select -s”返回“python26”而不是“python26-apple”,它显示在“python_select -l”中。
【解决方案3】:

我无法重现它(向上箭头适用于 ipython 中的长行):

【讨论】:

  • :/ 这真的很烦人,我试过禁用任何配置文件自定义,使用最新的稳定版本(ipython 0.9.1),两台不同的机器,使用不同的终端配置文件..什么终端模拟器/shell /python/ipython 版本等你在用吗?
猜你喜欢
  • 1970-01-01
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
  • 2017-06-30
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
相关资源
最近更新 更多