Python v2/v3 迁移与共存:策略与工具指南
1. Unicode 绑定的必要性
在 Python 编程中,有时需要绑定 Unicode 名称而非简单引用。在 Python v2 中,右侧(RHS)的 Unicode 来自内置命名空间,若不进行赋值操作,就无法从模块中导入它。例如, tappio/writer.py 和 tappio/lexer.py 模块进行了修改,从 tappio.compat 导入 Unicode。在 writer.py 中, str(token) 被改为 unicode(token) ;在 lexer.py 中, isinstance(ch, str) 恢复为 isinstance(ch, unicode) 。完成这些更改后,所有测试在 v2 和 v3 环境下都能通过。
2. 单源树实现 v2/v3 支持
编写能在 Python v2 和 v3 环境中正确执行的代码是可行的,但需要在编写时格外小心,通常还需添加特定代码以实现两个环境间的兼容性。Python 的官方移植指南文档提供了关于版本间兼容性的实用建议。
有多个库可支持单源开发,以下是一些常见的库:
- six :是最早提供兼容性适配的项目。它在需要与早期 v2 实现保持兼容时特别有价值,因为它是在 Python 2.6 盛行时开发的,考虑到了 2.6 兼容
Python 2/3迁移与共存策略
超级会员免费看
订阅专栏 解锁全文
729

被折叠的 条评论
为什么被折叠?



