python - 任何 CPython 2.7 代码都可以在 Jython 2.7b3 中工作吗?

标签 python migration lxml jython

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

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

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

最佳答案

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

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

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

关于python - 任何 CPython 2.7 代码都可以在 Jython 2.7b3 中工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26261508/

相关文章:

python - 如何在Python中存储用户输入并稍后调用?

python - lxml 创建没有根元素的 XML 片段?

html - 快速有效地解析损坏的 HTML 的方法?

python - Django 选择选项

python - 有没有一种方法可以将某些值的数据从另一个表插入到一个表中?

node.js - 使用 TypeORM 将 JSON 数据迁移到数据库

scala - 玩迁移替代方案

python - 为什么 lxml.etree.iterparse() 会占用我所有的内存?

python - Django、Django Dynamic Sc​​raper、Djcelery 和 Scrapyd - 不在生产中发送任务

sql-server - 数据库、模式和表空间的使用