2014-10-08 70 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上工作,因爲標準庫的那部分不包括在內。

相關問題