您的位置:首页 > 编程语言 > Python开发

IPython 5.0-LTS 发布了!

2016-07-14 00:00 519 查看
本文由码农网 – 唐顺原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划

我们很高兴地宣布IPython5.0 LTS(长期支持版)正是发行了。IPython是Python Jupter架构下的核心,是一个交互式命令行界面。它为Python交互式计算终端、Jupyter笔记本以及所有支持Jupyter架构的其他终端提供了一组丰富的功能。

这次发布带来了新的功能以及许多新的改善。更重要的是,相比经典的IPython命令行接口有了更大的改善。

像平常一样,你可以通过以下方式来获取新版本:

pip install ipython –upgrade

在接下来的几天后,这个更新包也可以来源于conda和其他更新包管理商。

注意:IPython现在像其他Jupyter的组件一样,正按照自己的计划在更广泛的Jupyter项目保护下发展。因此,这次的发布不会影响Jupyter笔记本,QT控制台, NbConvert,或其他之前也属于Python部分的包。

一个全新的终端接口

从Jupyter笔记本包里分离IPython已经使得核心团队能够集中精力去独立提升笔记本包里的命令行接口。Windows上的pyreadline和Mac上gnureadline的尴尬处境促使托马斯•卢维去使用全新纯净pythonreadline作为替代来更新旧的组件:prompt toolkit

prompt_toolkit包是一个来自乔纳森•斯兰德的功能强大的包,最近刚刚达到1.0版本。超越readline,prompt_toolkit在终端编辑文本提供了许多高级功能,大大改善了用户体验。由于它是一个跨平台的库,所有Linux,Unix,macOS和Windows的用户都可以从这些提升中受益。多亏prompt_toolkit,IPython现在支持:

语法高亮显示

真正的多行编辑(上下箭头可以在行与行之间移动)

不打破缩进多行粘贴或者立即执行代码

更好的代码完成界面(我们计划改进更多)

可选的鼠标支持



我们在工作中使用了几个星期的时间里虽然没有使用prompt_toolkit的全部功能,但当我们回到旧的没有改善过的IPython版本时,会感觉陌生且奇怪。我们希望你会喜欢上它们。我们也非常感谢乔纳森•斯兰德,一直以来都非常负责地对待我们的疑惑和特性请求。

Jupyter控制台

Jupyter控制台提供了交互式终端IPython的经验,但有能力连接到任何Jupyter内核而不是只有IPython。这允许你测试任何Jupyter内核安装在终端,而不需要启动一个完整的笔记本。Jupyter控制台也获得了最上面描述的大多数功能,同时利用prompt_toolkit。

几天前我们也发布了Jupyter控制台5.0版本,此版本兼容IPython 5。如果你是一个Jupyter控制台用户,你将需要升级。

$ pip install jupyter_console --upgrade

长期支持(LTS)

你可能会选择从这篇博客的标题:IPython 5。x将会是第一个发行版系列获得长期支持(因此命名LTS)。

IPython,我们通常只支持一次主要发布一个版本,一旦新的主要版本出来,以前主要发布的版本将停止错误修复。为了发布5.x系列版本,我们将破例:到2017年底核心团队将尽力为5.x版本系列提供至关重要的bug的修复。除此之外,我们将不会优先开始这项工作,但我们将在2018年至2019年里继续接受来自社区的修复bug请求,并且必要时发布。

我们希望这将帮助那些需要长期支持IPython版本5.x的组织。

停止支持Python2

IPython兼容Python3多年,自从2011年托马斯•卢维移植代码库Python 3兼容使用版本2。在2013年,我们搬到一个单一来源的代码库Python2和3。IPython的日常发展现在完全使用Python 3,我们开始不小心打破Python 2兼容性测试或用户标记它。我们也希望使用Python 3的许多新特性,比如注释类型,yield form,asyncio,async def,await和其他近年来获得改进的语言及其标准库。

我们因此决定IPython 5.X是最后一个支持Python 2的主要版本。

当然,这就是为什么我们打算支持IPython 5.x比平常更长的时间。我们认识到,许多人仍然使用Python 2,他们将能够继续的支持版本IPython好几年了,在合适的时间过渡给他们。超出了2017年底我们愿意为小错误修正版本5.x提供社区贡献补丁。最重要的是,没有新功能将被添加到一个支持IPython的Python 2在即将到来的5.0版本上。

因此,IPython的下一个主要版本,IPython 6.x将需要Python 3。它将开始使用新的语法,并且适当摆脱已经存在的兼容层。

如果你是一个Python 2用户,放心,我们会确保升级并不出人意料地安装IPython 6.x,破坏您的系统。你可以决定在IPython 5.x LTS上停留更长一段时间,并且决定跳过几个IPython版本,一旦你迁移到Python 3之后,虽然我们建议跟上最新的稳定版本发布,当然,可能的话就迁移到Python 3。

IPython是第一个放弃支持Python 2的IPython / Jupyter项目,但是你可以指望其他IPython / Jupyter组件跟进。自成立以来,例如,JupyterHub就一直只有Python 3。

需要注意的是,用户总是可以通过Jupyter笔记本使用Python 2内核,即使当我们所有的项目都转移到Python 3:作为我们的长期支持版承诺的一部分,我们将更新IPython内核里任何有必要的更新,以便它可以继续在LTS所支持的时间里在Jupyter笔记本上运行。

帮我们与Python 3过渡

我们明白,迁移到Python 3因为各种原因而很难实现,所以提前计划通常是必要的。因此我们正在帮助收集一个简单的列表项目决定放弃支持Python 2或2020年以前当支持Python 2.7自己结束支持。Matplotlib等项目和SymPy计划将在未来几年内放弃支持,尽管一些项目,比如Scikit-Bio已经领先我们,但是不久很快应该只有Python 3。

因此我们决定签Python3声明中列出的采取这一步骤的项目,以及如果可能的话,提供一个计划发布时间表,让用户知道哪个版本仍然兼容Python 2,还有哪个版本将只支持Python 2。

如果你想将你的项目添加到这个页面,或者你知道一个项目正考虑过渡到Python 3,请再此取得联系。我们相信,尽早给Python用户足够的信息将有助于缓解过渡。

在SciPy上等你哦!

我们中的一些人将会在奥斯汀参加今年的SciPy。我们很高兴与你见面,希望一起为IPython和Jupyter项目加油冲刺。我们希望在那看到你。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: