python - 从 CPython 迁移到 Jython

标签 python migration jython cpython

我正在考虑将我的代码(大约 30K LOC)从 CPython 转移到 Jython,以便更好地与我的 java 代码集成。

是否有我应该查看的 list 或指南来帮助我进行迁移?有没有人做过类似的事情?

从阅读 Jython site ,大多数问题似乎都太晦涩难懂了。

我确实注意到了:

  • 线程安全是个问题
  • Unicode 支持似乎完全不同,这对我来说可能是个问题
  • mysqldb不行,需要换成zxJDBC

还有什么?

相关问题:What are some strategies to write python code that works in CPython, Jython and IronPython

最佳答案

首先,我不得不说 Jython 的实现非常好。大多数事情“正常工作”。

以下是我遇到的一些情况:

  • 当然,C 模块不可用。

  • open('file').read() 不会自动关闭文件。这与垃圾收集器的差异有关。这可能会导致打开文件过多的问题。最好使用“with open('file') as fp”成语。

  • 设置当前工作目录(使用 os.setcwd())适用于 Python 代码,但不适用于 Java 代码。它模拟所有与文件相关的当前工作目录,但只能为 Jython 这样做。

  • XML 解析将尝试验证外部 DTD(如果可用)。由于解析器将通过网络下载 DTD,这会导致 XML 处理代码的速度大幅下降。我 reported this issue ,但到目前为止它仍未修复。

  • 在 Jython 代码中调用 __del __ 方法很晚,而不是在对对象的最后一个引用被删除之后立即调用。

有一个 old list of differences ,但最近的列表不可用。

关于python - 从 CPython 迁移到 Jython,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/420792/

相关文章:

python - 使用python查找子矩阵中不同元素数量的最佳方法

java - Jython:阻止对 java 类的访问并更改输出流

php - Doctrine generate-migrations-diff 和 migrate

sql - 物化 View 未更新

mysql - DC2Type :array comment being added to field when doing a Doctrine migration diff

java - 无法使用 Jython 和 mysql.connector 模块连接到 mysql 数据库

java - PythonInterpreter导入java类

python - Talos 多 GPU 功能

python - OSError : [Errno 13] Permission denied while calling os. 删除()

Python - 使用 pyplot 将二维数组映射到网格?