【问题标题】:Would any CPython 2.7 code work in Jython 2.7b3?任何 CPython 2.7 代码都可以在 Jython 2.7b3 中工作吗?
【发布时间】:2014-10-08 16:09:55
【问题描述】:

Frank Wierzbicki 在他的blog post 中写道:“Jython 2.7b3 使我们在语言级别上与 2.7 版本的 CPython 兼容。”

这是否意味着任何 CPython 2.7 代码都可以与 Jython 一起使用?

我有一个用 CPython 2.7 编写的大型代码。由于我们希望将它与 JAVA 模块集成,因此我对一种无需重写代码即可迁移到 Jython 的方式非常感兴趣。考虑到库,我使用了很多 lxml(如 here 所述)与以前的 Jython 版本不兼容。

【问题讨论】:

  • 用纯 python 编写的任何东西都应该在 Jython 中工作。但是任何带有 C 代码的第三方包几乎肯定不会。如果lxml 有 C 代码,看起来确实有,那么它可能仍然无法工作。

标签: python migration lxml jython


【解决方案1】:

不,不是所有在 CPython 2.7 中工作的代码都可以在 Jython 中工作,就像某些代码绑定到特定操作系统而不能在其他操作系统上工作一样(例如Windows 特定的 Python 代码无法在 Linux 上运行,反之亦然)。

语法可以工作,但如果脚本需要特定的附加模块,例如lxml,那么这些将工作。那是因为lxml 是 C-API 扩展,而 Jython 不支持 Python C-API。

同样,如果您的代码使用 multiprocessing 模块,那么它也无法在 Jython 上运行,因为标准库的那部分不包括在内。

【讨论】:

    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多