Python3.4 兼容性

bp python3

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

文档影响

没有显著的文档变更。

参考资料