python - IPython 7.0.1 中的多行编辑中断

标签 python shell ipython

我在 zsh shell 中使用 IPython,但在定义多行函数时遇到了问题。

例如,在原始的 Python shell 中,我可以这样定义一个函数 f:

>>> def f(x):
...     a = x + 1
...     return a
... 
>>>

当我在 IPython 中这样做时,定义会在行 'a = x + 1' 结束时立即结束。它看起来像这样:

In [4]: def f(x): 
   ...:     a = x + 1                                                                                                                              

In [5]:   

如何通过更改某些配置或安装其他版本的 IPython 来修复它?

我的 Python 和 IPython 版本:

Python 3.5.6 |Anaconda, Inc.|  
Type 'copyright', 'credits' or 'license' for more information
IPython 7.0.1 -- An enhanced Interactive Python. Type '?' for help.

最佳答案

这是一个known bug (另请参见 this)。

从我提到的问题中可以清楚地看出,这不是 Anaconda 发行版的错误,而是 IPython 7.0 版本中的错误。

Matthias Bussonier建议使用 C-o(即 Control o)作为权宜之计。 C-o 在当前行下方打开新的空白行,您可以使用箭头键访问和编辑它——这不是一个非常令人满意的解决方案,但目前没有其他解决方案(当然,除了将 IPython 降级为6.x).

最后,使用 C-o 打开新行并等待错误修复或降级到 IPython 6.x。


附加信息

Carlos Cordoba ,Spyder 维护者之一,在 a commentan answer of mineqtconsole 也受此错误影响...

此外,在 IPython 7.1 shell 中修复的错误仍然存​​在于相同版本的 qtconsole 和我提到的权宜之计 (Ctrl-o 在当前行下方打开一行)在 qtconsole 中不起作用。

关于python - IPython 7.0.1 中的多行编辑中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52775562/

相关文章:

python - 如何将 argparse 参数传递给类

python - Django Shell 图片上传_io.BufferedReader 无属性大小

javascript - 如何在没有文件名的情况下运行 JavaScript

ipython - 选项 "--read-only"Ipython 笔记本

python - 测试元组是否具有所有不同的元素

python - 无法在 Windows 的 ubuntu 终端上找到一些用于安装 python 的包

python - numpy.zeros 方法中的这个参数是什么意思?

python - 从文本文件中的行中剥离字符串并将列读入以列表为值的字典中

linux - 在我的 shell 脚本中,如何在插入充电器时停止播放声音?

java - clojure 应用程序 - lein uberjar 抑制编译时输出