增强的 IPython shells 和内核具有以下主要功能:
- 全面的对象自省。
- 输入历史,跨会话持久。
- 在会话期间使用自动生成的参考缓存输出结果。
- 可扩展的 tab 补全,默认支持 python 变量和关键字、文件名和函数关键字的补全。
- 可扩展的 ‘magic’ 命令系统,用于控制环境并执行与 IPython 或操作系统相关的许多任务。
- 丰富的配置系统,可在不同设置之间轻松切换(比
$PYTHONSTARTUP
每次更改环境变量更简单)。 - 会话记录和重新加载。
- 针对特殊用途情况的可扩展语法处理。
- 使用用户可扩展小程序系统访问系统 shell。
- 可轻松嵌入其他 Python 程序和 GUI。
- 对 pdb 调试器和 Python 分析器的集成访问。
1 概述
IPython 的目标是为交互式和探索性计算创建一个综合环境。为了支持这一目标,IPython 具有三个主要组件:
- 增强的交互式 Python shell。
- 解耦的双进程通信模型,允许多个客户端连接到计算内核,最值得注意的是Jupyter提供的基于 Web 的笔记本。
- 交互式并行计算的架构现在是
ipyparallel
软件包的一部分。
1.1 增强的交互式 Python shell
1.1.1 交互式 shell 的主要特点
- 动态对象自省。
- 使用通配符
*
或者通过?
系统和%psearch
命令搜索模块和命名空间。 - 通过在提示符处键入TAB,在本地命名空间中完成。
- 带有命令历史记录的编号输入/输出提示(跨会话持续存在并与每个配置文件相关联),在此历史记录中进行完整搜索并缓存所有输入和输出。
- 用户可扩展的“魔术”命令。
- 用于定义您自己的系统别名的别名工具。
- 完整的系统 shell 访问。以
!
开始会直接传递给系统 shell。使用!!
或var = !cmd
,捕获 shell 输出到 python 变量中以供进一步使用。 - 调用系统 shell 时扩展 python 变量的能力。
- 文件系统导航,通过一个神奇的
%cd
命令,以及一个持久的书签系统(使用%bookmark
)来快速访问经常访问的目录。 - 通过
%store
命令的轻量级持久性框架,允许您保存任意 Python 变量。 - 键入时(通过 prompt_toolkit 库)自动缩进和突出显示代码。
- 用于通过命令快速重新执行具有单个名称的多行先前输入的宏系统
%macro
。宏可以通过 永久存储%store
和编辑%edit
。 - 会话记录(您可以稍后将这些日志用作程序中的代码)。
- 会话恢复:可以重播日志以将先前的会话恢复到您离开的状态。
- 详细和彩色的异常回溯打印输出。
- 通过
%autocall
命令自动括号:可调用对象可以在没有括号的情况下执行。 - 自动引用。
- 可扩展的输入语法。
- 灵活的配置系统。
- 可嵌入。
- 易于调试器访问。
- 探查器支持。
- 简单的时间信息。可以使用
%timeit
命令获取 Python 语句或表达式的执行时间。该机器足够智能,可以对快速完成的命令进行更多重复,以便更好地估计它们的运行时间。 - 文档测试支持。
2 安装
2.1 快速安装提示
安装 IPython:
$ pip install ipython
使用 Jupyter 安装和注册 IPython 内核:
$ python -m pip install ipykernel
$ python -m ipykernel install [--user] [--name <machine-readable-name>] [--display-name <"User Friendly Name">]
2.2 安装 IPython
2.2.1 概述
2.2.1.1 依赖项
可以使用包管理器命令查看依赖项,例如 pip show ipython
或 conda info ipython
。
2.2.1.2 从源安装
要从源代码安装 IPython,请从 PyPI获取最新的稳定 IPython 压缩包。然后执行以下操作:
tar -xzf ipython-5.1.0.tar.gz
cd ipython-5.1.0
# The [test] extra ensures test dependencies are installed too:
pip install '.[test]'