如何IPython中的魔术%糊工作?(How does IPython's magic %p

2019-06-25 05:06发布

我想已经缩进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.

Answer 1:

你不能复制到IPython的直接。 这是具体操作步骤:

  1. 要复制到IPython的行复制到剪贴板
  2. 输入%paste成的IPython
  3. 按回车键
  4. 利润!


Answer 2:

一个澄清的步骤:

  • 首先,复制目标线到剪贴板。

  • 键入到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


Answer 3:

作为IPython的5,你不需要任何魔法命令,只是贴吧

由于prompt_toolkitIPython现在支持:

  • 语法高亮显示您键入
  • 真正的多行编辑(向上和向下箭头键线之间移动)
  • 多行贴不破坏缩进或立即执行代码
  • 更好的代码完成接口(我们计划提高更多)选购鼠标的支持

更多关于此这里

要升级ipython到最新版本

pip install ipython --upgrade 


Answer 4:

%paste需要Tkinter 。 如果你是在Ubuntu中,您可以通过安装

sudo apt-get install python-tk

如果你在Python3

sudo apt-get install python3-tk

然后,重新启动IPython中,并使用%paste从剪贴板粘贴。



Answer 5:

对于Ubuntu用户谁是关于Python 3。

python-tk就是Python 2。

要使%paste在Python 3中工作,安装python3-tk包:

sudo apt-get install python3-tk


Answer 6:

其中一个有用的答案在评论中丢失的,所以想和增加对另一个有用的IPython的神奇功能的引用重申它一起。

首先要重申什么@EOL说,解决OP的问题的一种方法是先运行到关闭自动缩进%autoindent ,做糊(没有必要,如果你正在使用%paste ,当然)。

现在更多的信息添加到什么是已经存在在这里,在IPython中一个更有用的方式是%doctest_mode它允许你从文档字符串复制粘贴示例及测试片段。 这也是有用的执行交互式Python会话输出,你可以找到在文档和网络论坛,无需先剥离出提示字符串。



文章来源: How does IPython's magic %paste work?