2009-12-23 63 views
7

我很確定python腳本可以在所有這三個工作,但我想確保。我已經在這裏和那裏閱讀了可編寫CPython,Jython,IronPython的編輯器,我希望我能夠深入瞭解這個區別。CPython,IronPython,Jython腳本是否相互兼容?

我的情況是我有3個不同的API,我想測試。每個api都以明智的方式執行相同的功能,但它們在實現上有所不同。我正在爲每種語言的apis編寫包裝。每個包裝應該使用Boost :: python,Jython和IronPython向python展示完全相同的功能和實現。

我的問題是,將使用這些公開的方法(即是常見的每種語言)編寫的Python腳本Python中的所有三個「口味」的工作?

就像我說的,我很肯定的回答是「當然,」但我必須確保我花太多時間在這方面的工作了。

回答

10

簡短的回答是:有時候。

建立在IronPython的頂部可以不與工作CPython的一些項目,並且被寫入在C(例如NumPy的)一些CPython的模塊不會與IronPython的工作。

在類似的說明中,雖然Jython實現了語言規範,但它與CPython存在一些不兼容性(例如,它缺少CPython標準庫的幾個部分,並且它可以導入Java標準庫包和類,如Swing )

所以,是的,只要你避免不兼容。

+0

好吧,我看過一些帖子有關檢測您使用在Python的庫,所以只要不兼容性保持在最低限度這應該工作了相當不錯。感謝 – Charles

+2

@Charles:此外,其他各Python解釋(Jython的,IronPython的)的都將有很好的文件,詳細說明它不符合CPython的。如果您密切關注這些文檔,只要您延伸過去三種文檔的功能,就可以快速進行分析。 IPython中和的CPython之間 –

+0

來進行比較:http://en.wikipedia.org/wiki/IronPython#Differences_with_CPython看起來很微小的。 – zinking