重要
本文档涵盖 IPython 6.0 及更高版本。从 6.0 版本开始,IPython 不再支持与低于 Python 3.3 的 Python 版本(包括所有版本的 Python 2.7)兼容。
如果您正在寻找与 Python 2.7 兼容的 IPython 版本,请使用 IPython 5.x LTS 版本并参阅其文档(LTS 是长期支持版本)。
IPython 提示和技巧¶
IPython 食谱详细介绍了您可以使用 IPython 完成的更多操作。
在程序中嵌入 IPython¶
几行代码就足以在您自己的程序中加载一个完整的 IPython,让您在自动处理完成后以交互方式处理数据。请参阅嵌入部分。
运行 doctest¶
在 IPython 中从内部运行 doctest 以进行开发和调试。特殊的%doctest_mode
命令切换到一种模式,其中提示、输出和异常显示尽可能与默认 Python 解释器匹配。此外,此模式允许您直接粘贴包含前导“>>>”提示的代码,即使它们有额外的前导空格(在 doctest 文件中很常见)。这与%hist -t
调用结合使用以查看已翻译的历史记录,从而实现轻松的 doctest 工作流,您可以在需要时从 doctest 转到交互式执行再粘贴到有效的 Python 代码。
使用 IPython 呈现交互式演示¶
使用IPython.lib.demo.Demo
类将任何 Python 脚本加载为交互式演示。通过最少的简单标记,您可以控制脚本的执行,根据需要停止。请在此处了解更多信息。
禁止输出¶
在行尾放置“;”以禁止打印输出。这在执行计算并生成您不感兴趣的长输出时很有用。它还会将对象保留在输出缓存之外,因此如果您使用大型临时对象,它们将更快地从内存中释放。
轻量级“版本控制”¶
当您不带参数调用 %edit
时,IPython 使用临时文件打开一个空编辑器,并将编辑会话的内容作为字符串变量返回。由于 IPython 的输出缓存机制,这会自动存储
In [1]: %edit
IPython will make a temporary file named: /tmp/ipython_edit_yR-HCN.py
Editing... done. Executing edited code...
hello - this is a temporary file
Out[1]: "print('hello - this is a temporary file')\n"
现在,如果您调用 %edit -p
,IPython 将尝试使用与上次使用 %edit 时相同的数据打开一个编辑器。因此,如果您在此期间未使用 %edit,则将重新打开相同的内容;但是,它将在新文件中完成。这意味着,如果您进行更改,并且以后想要查找旧版本,则始终可以通过使用其输出编号(通过“%edit _NN”,其中 NN 是输出提示的编号)来检索它。
继续上面的示例,这应该说明这个想法
In [2]: edit -p
IPython will make a temporary file named: /tmp/ipython_edit_nA09Qk.py
Editing... done. Executing edited code...
hello - now I made some changes
Out[2]: "print('hello - now I made some changes')\n"
In [3]: edit _1
IPython will make a temporary file named: /tmp/ipython_edit_gy6-zD.py
Editing... done. Executing edited code...
hello - this is a temporary file
IPython version control at work :)
Out[3]: "print('hello - this is a temporary file')\nprint('IPython version control at work :)')\n"
本节是在 Alexander Belchenko 在 IPython 用户列表上做出贡献后编写的。