我将从其他答案和我的经验中收集的Wiki开始。随意编辑和添加内容,但请尝试遵循实用建议,而不要列出损坏的内容。这是与Jython网站不同的旧列表。
资源管理Jython不使用引用计数,因此资源在被垃圾回收时被释放,这要晚于等效的CPython程序
open('file').read()
不会自动关闭文件。更好地使用with open('file') as fp
成语。- 在Jython代码中很晚才调用__ del __方法,而不是在删除最后一个对该对象的引用之后立即调用。
mysqldb是交流模块,因此无法在jython中使用。相反,您应该使用
com.ziclix.python.sql.zxJDBCJython随附的。
connection = MySQLdb.connect(host, user, passwd, db, use_unipre=True, chatset='utf8')
带有:
url = "jdbc:mysql://%s/%s?useUnipre=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" % (host, db)connections = zxJDBC.connect(url, user, passwd, "com.mysql.jdbc.Driver")
您还需要将全部替换
_mysql_exception为
zxJDBC。
最后,您需要将查询占位符从替换
%s为
?。统一码
- 您无法在Jython中表达非法的unipre字符。尝试类似的 *** 作
unichr(0xd800)
会导致异常,并且u'ud800'
在代码中包含文字会造成严重破坏。
- 当然,C模块不可用。
- 所以没有NumPy或SciPy。
- os.spawn *函数未实现。而是使用subprocess.call。
- 对于大多数工作负载,Jython将比CPython慢得多。报告速度要慢3到50倍。
Jython项目仍然有效,但发展并不迅速。在
开发邮件列表
有一个每月20消息,并且似乎有大约只有2开发人员commiting码最近。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)