有谁知道“几乎所有”广泛使用的 Python 库与 Python 3.0 一起使用需要多长时间?
我打算在 2.X 上停留一段时间,因为我不想开始移植东西,然后发现我已经依赖的某些库或我可能开始使用的新库不适用于 py3k。
我的理解是,py3k beta 过程是专门为给图书馆开发人员时间来转移他们的东西而制定的。这一直在发生吗?
我正在谈论的各种库的示例是 PIL、numpy/scipy、SQLAlchemy、BeautifulSoup、CherryPy...
有谁知道“几乎所有”广泛使用的 Python 库与 Python 3.0 一起使用需要多长时间?
我打算在 2.X 上停留一段时间,因为我不想开始移植东西,然后发现我已经依赖的某些库或我可能开始使用的新库不适用于 py3k。
我的理解是,py3k beta 过程是专门为给图书馆开发人员时间来转移他们的东西而制定的。这一直在发生吗?
我正在谈论的各种库的示例是 PIL、numpy/scipy、SQLAlchemy、BeautifulSoup、CherryPy...
您列出的示例可能会很快被移植,因为它们被广泛使用。
如果 BeautifulSoup 需要一个多月的时间,我会感到惊讶(事实上,我很惊讶它还没有使用 py3k 测试版进行移植),像 numpy 这样更复杂的东西可能需要更长的时间,特别是因为 2to3 仅适用于 python源代码,而不是 C 模块..
很难一概而论——有些模块可能永远不会被移植,有些可能需要几天时间,有些可能需要几年时间。最终可能会出现以下情况:“我没有将我的库移植到 Python3,没有人在使用它!”/“我没有将我的项目移植到 Python3,还没有更新任何库! ”,但我希望不会!
实际上,对您的问题的回答取决于许多不同的人(Python std lib 之外的所有库的维护者)的行为,我认为没有人可以为您的问题提供可靠的答案。
也就是说,你已经有了一些答案,而且你会得到更多。不过,我们同意一件事:根据经验,我通常建议不要立即将重要项目(主要与工作相关)移植到新的开发技术(Python 3、.Net 3.x 等),直到这样您的答案已经得到解答,并且许多最初的错误已得到解决。
不过,对于宠物或测试项目,我全力以赴进行更新和试验。
Some comments I saw in the CherryPy repository is that some of the changes to the sockets module are going to require an extensive reworking of the logic. I expect CherryPy will be slower than some of the other projects to get ported to 3.0.
迁移计划中的总体思路是停留在 2.x 上,然后慢慢将代码更改为 3.x。你至少有1.5 年的时间来担心它。当然还有先有鸡还是先有蛋的问题。
我记得 Adrian(django 的 BFDL)说 Guido 给了他们 5 年的移植时间。
一旦有人花一些时间进行移植,您提到的库就会被移植。
在 NumPy/SciPy 的特定情况下,大部分代码是作为 C 扩展编写的。没有用于 C 扩展的 2to3 工具,因此将代码移植到 cPython3 C 扩展需要使用的格式需要大量的工时。
截至 2013 年 5 月 1 日,您提到的所有库现在都支持 Python 3:
移植工作一直在逐步进行;最近移植了一些主要的库,例如 Django。