IPython 5.0 LTS(Long Term support)现在发布了。IPython是Jupyter和Python交互式终端的核心;它为Python的终端交互式计算、Jupyter Notebook和其他支持Jupyter架构的客户端程序提供了丰富的特性。
这个版本有很多令人激动的新特性(227次commit,27位贡献者,超过191次PR)。最重要的是,大多数的优化都对经典IPython命令行有重要意义。
照例,你可以通过下面的命令获得最新版本:
1
|
pip install ipython --upgrade |
接下来的几天,新版本也会在conda等其他包管理工具中更新。
注意:IPython现在是在一个大项目Jupyter下开发的,但是和Jupyter的其他项目一样,它有独立的开发计划,新版本并不涉及Notebook,Qt Console,nbconvert或其他作为IPython一部分的包。
全新的终端界面
将IPython从Jupyter Notebook包中分离出来,使核心团队可以专注优化交互式命令行。依赖Windows的pyreadline和Mac的gnureadline有很多 缺点,Thomas Kluyver用Python重写一个readline:prompt_toolkit。
prompt_toolkit包是Jonathan Slenders的 一个很棒的库,最近发布了1.0版本。除了readline之外,prompt_toolkit还为终端的文本输入提供了很多特性,极大提高了用户体验。 因为它是一个跨平台的库,所以Linux/Unix用户、MacOS用户和Windows用户都能享受到这些优化。感谢 prompt_toolkit,IPython现在支持:
- 语法高亮提示
- 真正的多行编辑(使用向上键和向下键在多行之间跳转)
- 多行粘贴,并且不会打乱缩进和立即执行
- 更好的代码结束接口
- 可选的鼠标支持
我们还并未使用prompt_toolkit所有的特性,但是几周的工作之后,再使用旧版本就感觉很不舒服了。希望大家喜欢新版本。Jonathan Slenders对我们的问题和需求很有耐心,对此我们感激不尽。
在“IPython 5.0的更新”中,可以查看详细的更新信息。
Jupyter Console
Jupyter Console提 供了像IPython在终端那样的客户端交互式体验,不仅仅能连接IPython,它还可以连接Jupyter内核。这样,就可以不必启动 Notebook就可以对安装的Jupyter内核进行测试。Jupyter Console的多数功能也是通过prompt_toolkit实现的。
几天前我们发布了Jupyter Console 5.0。如果你是Jupyter Console用户,现在也可以进行更新了。
1
|
pip install jupyter_console --upgrade |
Long Term Support (LTS)
你可能从这篇博客中听说了这个消息:IPython 5.0将会是提供长期支持的第一个版本。
对于IPython,我们之前一直是每次只发布一个主要版本;在新的主要版本发布之后,就放弃对上一主要版本的支持。在5.x系列,我们将打破这 个规则:直到2017年,核心团队将会尽最大努力提供对重大bug的修复。之后,我们虽然会停止支持,但是依然会审核社区的PR。并且在必要的时候发布新 的版本。
希望这对需要长期支持的团队有所帮助。
停止对Python2的支持
自从Thomas Kluyver在2011年通过使用2to3做了对Python3的支持之后,我们便使用了一个代码库,同时支持Python2 和Python3.随着IPython的开发,我们逐渐切换到使用Python3开发,直到某一天,在一次测试中,我们发现我们打破了对Python2的 兼容性。我们还使用了很多Python3的特性,比如类型注释,yield from,asyncio,async def,await和其他对语言的优化。
所以我们决定,IPython 5.x将是支持Python2的最后一个版本。
这也是我们决定长期支持IPython 5.x的原因之一。我们意识到,很多用户依然在使用Python 2,并且在接下来的几年,他们可能会继续使用IPython,所以我们希望能够让用户一点点过渡。2017年之后,我们将会继续通过社区的贡献来提供对 5.x的bug修复支持。但是对于兼容Python 2的IPython,不会再添加新的特性。
所以,下一个主要版本Ipython 6.x将仅支持Python 3.如果你是Python 2用户,也不必担心,我们会确保你不会误安装IPython 6.x。你可以选择继续使用IPython 5.x LTS,或者迁移到Python 3,并使用最新版本的IPython3。虽然我们强烈推荐一直更新最新的版本,如果可能迁移到Python 3的话。