有没有人知道在“几乎所有”广泛使用的Python库与Python 3.0一起工作之前还需要多长时间?
我打算继续使用2.X一段时间,因为我不想开始移植东西,然后发现我已经依赖的某个库或者我可能开始使用的新库无法使用py3k。
我的理解是py3k beta过程专门用于为库开发人员提供时间来移动他们的东西。发生过这种情况吗?
我所谈论的各种库的例子是PIL,numpy / scipy,SQLAlchemy,BeautifulSoup,CherryPy ......
答案 0 :(得分:4)
您列出的示例可能会很快移植,因为它们被广泛使用。
如果BeautifulSoup花了一个多月的时间,我会感到惊讶(事实上,我很惊讶它已经使用了py3k beta已经移植了),像numpy这样的更复杂的东西可能会花费更长的时间,特别是因为2to3只适用于python源代码,而不是C模块..
很难概括 - 某些模块可能永远不会被移植,有些可能需要数天,有些可能需要数年。它可能最终成为一种情况,“好吧,我没有将我的库移植到Python3,没有人使用它!”/“好吧,我没有将我的项目移植到python3,没有库已经更新了! “,但我希望不是!
答案 1 :(得分:4)
实际上,对你的问题的回复取决于许多不同的人(Python std lib之外的所有库的维护者)的行为,我认为没有人可以给你一个可靠的回答你的问题。
那就是说,你已经有了一些答案,你会得到更多。但我们同意一件事:根据经验,我通常建议重要的项目(主要与工作有关)不应立即移植到新的开发技术(Python 3,.Net 3.x等),直到你的答案已经得到解答,许多初步的错误已经解决了。
对于宠物或测试项目,我全都在进行更新和实验。
答案 2 :(得分:1)
我在CherryPy存储库中看到的一些注释是,对套接字模块的一些更改将需要对逻辑进行大量的重写。我希望CherryPy比其他一些项目要慢到3.0。
答案 3 :(得分:1)
迁移计划中的一般想法是保持2.x然后慢慢地将代码更改为3.x.你会在至少 1。5年内担心它。当然,鸡肉和鸡蛋问题当然存在。
答案 4 :(得分:1)
我记得Adrian(django的BFDL)说Guido给了他们5年的移民时间框架。
答案 5 :(得分:0)
一旦有人花了一些时间搬运它们,你提到的图书馆就会被移植。
在NumPy / SciPy的特定情况下,大部分代码都是作为C扩展编写的。 C扩展没有2to3工具,因此将代码移植到cPython3 C扩展需要使用的格式需要花费大量的工时。
答案 6 :(得分:0)
截至2013-05-01,您提到的所有库现在都支持Python 3:
移植工作一直在进行; Django等一些主要的图书馆最近被移植了。