Jython何时支持Python 3?

84
根据Jython的文档

Jython是用于Java平台的Python语言实现。Jython 2.5实现了与CPython 2.5相同的语言,并且几乎所有核心Python标准库模块。(CPython是Python语言的C实现。) Jython 2.5使用与CPython相同的回归测试套件,但进行了一些微小的修改。

是否有计划支持Python 3? 如果是这样,它什么时候发布?

6
今天看到这个,想知道同样的事情,七年过去了。我发现IronPython又被拾起来了......但是仍然没有Jython。 - c z
1
自2017年7月18日以来,Jython 3存储库没有任何更改,看起来不太好。但是Jython 2仍然活跃,如果Python 2真正停止支持,则有可能在2020年重新启动Jython 3的活动。这纯属推测。 - RedGlyph
4个回答

56
另一个更新: 2020年8月提交澄清要查看的存储库不是Jython3,而是主Jython存储库。无论如何,“Jython的最新版本仍然是2.7.x。 Jython 3.x应该会出现,但目前探索性工作还不稳定。请关注jython-dev邮件列表以获取最新进展。”
更新:在问题最初提出9年后,答案现在似乎是不会在近期内最近的提交已经超过两年了(2017年7月18日),而开发人员表示3.x分支正在“休息”

我的原始答案:

在问题提出5年后,答案仍然是"它会到来,但初始发布的时间框架尚不清楚"。

我们可以说现在有一个jython3 repository,针对Python 3.5。日期为2015年5月28日的README.md文件中写道:

这个存储库处于Jython 3.5版本开发的早期阶段。计划的目标是与CPython 3.5具有语言和运行时兼容性,并继续大力支持Python生态系统。

Jython FAQ page页面指出:

Jython 3.x正在开发中。


7
看了一下提交历史,Jython 3 的开发还算有些活跃https://github.com/jython/jython3/commits/master,但我不会抱太大希望认为它会很快被正式发布。 - Diego
3
看起来有点濒临死亡。自2017年7月18日以来没有提交记录了。很遗憾。 - mzjn
3
请参见 https://github.com/jython/jython3/issues/36。Frank Wierzbicki于2018年3月1日写道:“Jython3比死亡更加停滞不前”。Jeff Allen于2019年4月18日写道:“它并没有死,它正在休息”。 - mzjn
1
似乎是一只死掉的鹦鹉。 - MichaelMaggs

37

Jython路线图已经过时。


然而,在Frank Wierzbicki的博客(Jython的主要开发人员之一)上,你可以得到更新,告诉你Python 3绝对在计划中。

不幸的是,正如2010年同一博客中的评论所述,尚不清楚何时会实现:

Jython将达到2.6版本,随后是3.x版本, 但很难给出一个确定的时间 框架。我希望在几个月内发布2.6版本。

在2017年的一次采访中,Wierzbicki表示,Python 3是可取的,但困难重重。

我们长期希望发布3.x版本, 但这是一个漫长的过程,因为3.x系列中有很多变化。

英文原文:

We want to publish a version 3.x in the long run, but that is a drawn-out process, because there were a lot of changes in the 3.x series.

Jython - Java世界中的Python [Java虚拟机海盗]}, JAXenter, 2017-04-12.


太好了!我确信这个问题一定已经被提出 某个地方,但我的 Google 技巧不够。 :) - Adam Paynter
6
这篇文章发布已经超过2年了,而现在的搜索结果仍然匮乏。目前看来,Jython 3似乎除了开发人员之外还没有任何实质性进展。 - fIwJlxSzApHEZIl
10
5年后,Jython 2.7发布了 - gerrit
3
在一篇于2017年4月的德国采访中,Frank Wierzbicki表示:“从长远来看,我们希望发布一个3.x版本,但这是一个漫长的过程。” - Marco Eckstein
1
@MarcoEckstein:感谢您指出这一点。我已将其编辑到答案中。 - sleske
显示剩余2条评论

11

我建议在JVM上寻找其他Python 3解释器。

GraalPython项目(https://github.com/graalvm/graalpython)看起来很有前途。它的存在有很好的理由,本质上是说“让我们支持Python中的科学计算和数据分析,也就是例如numpy,包括原生代码模块,并使其快速且可互操作”。

但是,Jython目前并没有那么好。


但是,巨大的区别在于使用无法序列化的对象的 CPU 密集型代码必须保持单线程,就像使用 Cpython 一样(Jython 没有 GIL)。 - user2284570
我简要检查了一下,确实看起来GIL存在于GraalPython中。让我们看看对https://github.com/oracle/graalpython/issues/180#issuecomment-754315123的评论会是什么吧;P - user7610
我是评论的作者。这就是为什么在选择CPU时,每个线程的性能仍然是根本原因(因此必须使用Intel abi而不是longsun或arm)。这是由于语言中的一个糟糕的设计决策。我需要Python3,并且我正在使用的对象无法序列化,这意味着需要一个没有GIL的Python3实现(或使其可选)。 - user2284570

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接