2014-10-08 59 views
1

Frank Wierzbicki在他的blog post中写道:“Jython 2.7b3使我们的语言级别与2.7版本的CPython兼容。”任何CPython 2.7代码都可以在Jython 2.7b3中运行吗?

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

我有一个用CPython 2.7编写的大代码。由于我们想将它与JAVA模块集成,我会非常感兴趣的是在不重写代码的情况下迁移到Jython。考虑到库,我使用了很多lxml,其中(如描述的here)与以前的Jython版本不兼容。

+0

用纯py​​thon编写的任何东西都应该在Jython中工作。但任何具有C代码的第三方软件包几乎肯定不会。如果'lxml'具有C代码,它看起来确实如此,那么它可能仍然不起作用。 – 2014-10-08 16:14:04

回答

3

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

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

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

相关问题