跟踪全球迁移到Python 3.x
Python 3.x 现在看起来越来越吸引人了,因为它的语法更简洁(我觉得不错,其他人可能不这样认为),还有一些新功能,并且似乎在逐步提高速度和多线程处理能力。
但是,Python 3.x 仍然受到缺乏第三方支持的限制。一些重要的库,比如 Django、Twisted 等,还没有移植到这个版本上。要了解迁移过程中有哪些瓶颈、进展到什么程度,以及是否真的在进步,这些都很困难。迁移的依赖关系也很难理清。而且,很多项目可能在等着 Python 3.x 提供一些比 2.x 更大的改进,以便值得花时间进行移植。
理想情况下,应该有一个网站来整体跟踪这个迁移过程,显示迁移计划和依赖关系的链接,这样愿意帮助迁移的人可以协调他们的努力,支持特定项目。也许还可以链接到项目的错误追踪系统,以便处理与迁移相关的错误。
但也许是我没有找得够仔细。有没有人知道有什么努力在跟踪全球向 Python 3.x 的迁移呢?
(我说的“全球”,是指所有基于 Python 的开源项目。)
2 个回答
Python包索引(PyPI)是一个可以让你搜索支持Python 3.x的第三方模块的地方。它甚至有一个Python 3包的链接,里面列出了所有这些模块。
不过,这个索引并不能跟踪每个项目在支持Python 3方面的进展。它只是告诉你哪些项目已经支持了Python 3。
我很想看到的是一个图表,显示在PyPI中Python 3包的总数或百分比随时间的变化(从Python 3发布到现在)。我不知道有没有人跟踪过这个,或者PyPI的管理员是否有足够的历史数据来制作这样的图表。
George Brandl 制作了一个脚本,可以生成一个图表,显示支持 Python 3 的软件包数量:
在 CheeseShop 的首页上有一个链接,展示了相关的软件包:http://pypi.python.org/pypi?%3aaction=browse&c=533&show=all
还有一个(质量不太好)未移植软件包的列表,按照依赖数量排序:http://onpython3yet.com/ 我为什么说这个列表质量不高呢?因为它完全没有经过人工修正,导致像 Python 这样的包也被列出来。这主要是因为很多人不知道“依赖”列表并不是随便列任何依赖的地方,而是应该列出在使用 easy_install/PIP 时需要自动安装的软件包。不过在 Django 的世界里,他们并不知道这一点,所以你会看到像“django-saddle”依赖于 Django 和 Python,从而导致无法简单安装。
尽管如此,这个列表还是很有趣的,我们可以看到 PIL 确实应该被移植。
需要说明的是,这个数据并不是“全球”的,只是 PyPI 上的软件包,因此大多数都是 Python 模块,而不是独立的应用程序。不过我认为整体趋势在这里还是可以看得出来的。