我想已经缩进Python代码/整函数和类复制到IPython中。 每次我试图缩进被搞砸了,我得到以下错误信息:
IndentationError: unindent does not match any outer indentation level (<ipython-input-23-354f8c8be51b>, line 12)
If you want to paste code into IPython, try the %paste and %cpaste magic functions.
你不能复制到IPython的直接。 这是具体操作步骤:
- 要复制到IPython的行复制到剪贴板
- 输入
%paste
成的IPython - 按回车键
- 利润!
一个澄清的步骤:
首先,复制目标线到剪贴板。
键入到IPython的提示:
- 如果Tkinter的:输入
%paste
- 否则:输入
%cpaste
粘贴(Ctrl-V),然后回车。
然后输入--
并回车。
例如:
In [1]: %cpaste
Pasting code; enter '--' alone on the line to stop or use Ctrl-D.
:for l in "Hello World":
: print l,
:--
H e l l o W o r l d
作为IPython的5,你不需要任何魔法命令,只是贴吧
由于prompt_toolkit
, IPython
现在支持:
- 语法高亮显示您键入
- 真正的多行编辑(向上和向下箭头键线之间移动)
- 多行贴不破坏缩进或立即执行代码
- 更好的代码完成接口(我们计划提高更多)选购鼠标的支持
更多关于此这里
要升级ipython
到最新版本
pip install ipython --upgrade
%paste
需要Tkinter
。 如果你是在Ubuntu中,您可以通过安装
sudo apt-get install python-tk
如果你在Python3
sudo apt-get install python3-tk
然后,重新启动IPython中,并使用%paste
从剪贴板粘贴。
对于Ubuntu用户谁是关于Python 3。
该python-tk
就是Python 2。
要使%paste
在Python 3中工作,安装python3-tk
包:
sudo apt-get install python3-tk
其中一个有用的答案在评论中丢失的,所以想和增加对另一个有用的IPython的神奇功能的引用重申它一起。
首先要重申什么@EOL说,解决OP的问题的一种方法是先运行到关闭自动缩进%autoindent
,做糊(没有必要,如果你正在使用%paste
,当然)。
现在更多的信息添加到什么是已经存在在这里,在IPython中一个更有用的方式是%doctest_mode
它允许你从文档字符串复制粘贴示例及测试片段。 这也是有用的执行交互式Python会话输出,你可以找到在文档和网络论坛,无需先剥离出提示字符串。