Python3.4 兼容性¶
Keystone 应该很快向 Python 3.4 兼容性过渡。Python 2.7 正在走向其生命周期结束,我们应该确保我们尽快准备好迁移到 Python 3.4 及更高版本。
问题描述¶
由于 Python 2.7 远离 Python 社区新的开发倡议,Keystone(更广泛地说)OpenStack 需要迁移到 Python 3 运行时兼容性。
提议的变更¶
有一些 Python 3.4 不兼容的库需要替换为与较新版本的 Python 兼容的库。
使用 ldap3 库代替 python-ldap
使用 pymemcache 代替 python-memcache
任何对 Python 2.x 进行特定假设的代码都需要更新为使用 Python 3.x 兼容的版本。
备选方案¶
无
安全影响¶
Python 3 通常会看到新的开发,而 Python 2.x 则不会。这意味着 Python 核心深处的任何安全功能都可能更快地可用。
不应有直接的安全影响。
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
Python 2 和 3 的性能配置文件不同。在某些情况下,性能会提高,而在另一些情况下,性能会下降。在最坏的情况下,性能应该大致持平。
其他部署者影响¶
部署者可以使用 Python 3.4 代替仅使用 Python 2.7
开发人员影响¶
开发人员需要仅使用与 Python 2.7 和 Python 3.x 兼容的库和机制。这与今天的情况差别不大,只是在某些情况下(例如处理字节类型与文本类型)需要更多的工作。
实现¶
负责人¶
David Stanek <dstanek> Morgan Fainberg <mdrnstm>
工作项¶
用 ldap3 替换 python-ldap
用 pymemcache 替换 python-memcache
识别并替换 keystone 代码库中与 Python 3.x 不兼容的代码。
依赖项¶
全局需求需要包含 ldap3
文档影响¶
没有显著的文档变更。