CPython、IronPython和Jython脚本兼容吗?
我很确定,Python脚本在这三种环境下都能运行,但我想确认一下。我在网上看到过一些关于可以编写CPython、Jython和IronPython的编辑器的信息,希望我没有过于纠结这些区别。
我的情况是,我有三个不同的API想要测试。每个API在功能上是一样的,但实现方式不同。我正在为每种语言的API编写一个包装器。每个包装器应该通过Boost::python、Jython和IronPython向Python暴露完全相同的功能和实现。
我的问题是,使用这些暴露的方法(在每种语言中都是通用的)编写的Python脚本,能在这三种“版本”的Python中都正常工作吗?
就像我说的,我很确定答案是“当然可以”,但在我花太多时间在这个上面之前,我需要确认一下。
1 个回答
10
简单来说:有时候可以。
有些基于IronPython的项目可能在CPython上无法运行,而一些用C语言写的CPython模块(比如NumPy)也不能在IronPython上使用。
类似的,虽然Jython实现了语言的规范,但它和CPython之间有一些不兼容的地方(比如,它缺少CPython标准库中的一些部分,并且可以导入Java的标准库包和类,比如Swing)。
所以,只要你避免这些不兼容的情况,还是可以的。