我在 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.
最佳答案
从我提到的问题中可以清楚地看出,这不是 Anaconda 发行版的错误,而是 IPython 7.0 版本中的错误。
Matthias Bussonier建议使用 C-o
(即 Control o)作为权宜之计。 C-o
在当前行下方打开新的空白行,您可以使用箭头键访问和编辑它——这不是一个非常令人满意的解决方案,但目前没有其他解决方案(当然,除了将 IPython 降级为6.x).
最后,使用 C-o
打开新行并等待错误修复或降级到 IPython 6.x。
附加信息
Carlos Cordoba ,Spyder 维护者之一,在 a comment至 an answer of mine说 qtconsole
也受此错误影响...
此外,在 IPython 7.1 shell 中修复的错误仍然存在于相同版本的 qtconsole
和我提到的权宜之计 (Ctrl-o
在当前行下方打开一行)在 qtconsole
中不起作用。
关于python - IPython 7.0.1 中的多行编辑中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52775562/