我问这个是出于可部署的原因。例如,如果我用 python 编写解决方案,由于没有采用 python 3,我觉得一定要写到 2.x。这是我日常关心的主要问题,我想弄清楚发生了什么。
对于这里的许多基于 python 的问题,人们提供的解决方案在 python 3.x 中根本不起作用。
所以,我问一个问题:是什么阻止了你在个人或工作环境中切换到 python 3.x?转换脚本存在,但程序员(通常是所有事物的最早采用者)似乎拒绝升级。
为什么?
我问这个是出于可部署的原因。例如,如果我用 python 编写解决方案,由于没有采用 python 3,我觉得一定要写到 2.x。这是我日常关心的主要问题,我想弄清楚发生了什么。
对于这里的许多基于 python 的问题,人们提供的解决方案在 python 3.x 中根本不起作用。
所以,我问一个问题:是什么阻止了你在个人或工作环境中切换到 python 3.x?转换脚本存在,但程序员(通常是所有事物的最早采用者)似乎拒绝升级。
为什么?
[编辑 03/10/2014:这个答案现在已经过时了。Django 支持 Python 3 已经有一段时间了。]
【不过也必须注意,很多Django项目中使用的django第三方包和扩展,都处于Python 3兼容性实现的各个阶段。可以在跟踪各种项目状态的Django 包网站中找到更多详细信息。]
Django 尚未迁移到 3.0。这就是我需要知道的。
相关问题
这些问题中的大多数答案都反映了相同的观点。除了 Django,太多的框架/库——WxPython、PyGame、Django 等——仍然没有采用它。我敢肯定,除非他们这样做,否则不会采取行动。
因为我的代码库所依赖的主要库还没有发布 3.x 版本。(wxPython、matplotlib、numpy 等)
所以从我的角度来看,责任是上游。
如果我所有的依赖项都与 3.x 兼容,那么我现在可能已经切换了。
3rd 方工具和库。我无法让某些事情在 2.6 下工作(不是很多麻烦,请注意,但有些麻烦。)
在我看来,生态系统是 Python 的最大优势之一,而此时升级到 3.0 时,其中的很多东西都被抛在了脑后。(一年后,我相信故事会完全不同。)
(很明显,这里有先有鸡还是先有蛋的问题,不过幸好不是我要解决的问题,所以我还是在 2.6 待会儿吧。)
对于这里的许多基于 python 的问题,人们提供的解决方案在 python 3.x 中根本不起作用。
我想你在这里回答了你自己的问题。缺乏向后兼容性使得 3.0 比无缝升级更难销售,因为您必须调整思维并放弃一些编程技术才能使用新版本。
当他们有我的大脑升级脚本时给我回电话。
如果您有兴趣迁移到 Py3k,一种有趣的方法是在 Py3k 中编写代码并使用 3to2 脚本,该脚本现在作为 Google Summer of code 项目的一部分在 2to3 脚本的行上编写。
Because the default installation of 2.5 on Mac OSX Leopard works just fine. I have no need to upgrade and I see no advantage to upgrading except an end to the woes of unicode.
我使用最多的操作系统 Debian 没有 Python 3 包,甚至在“不稳定”(全新)分支中也没有。除非我自己编译它(那是相当 20 世纪),否则它对我来说意味着没有 Python3。
我敢打赌,许多操作系统都存在同样的问题。
不幸的是,出于与大多数其他人所说的相同的原因 - 3rd 方库仍然没有与 3.0 兼容。由于这个原因,以及一些 GNU/Linux 发行版(在我的例子中是 Ubuntu)仍然带有 Python 2.6,我还不能完全放弃 2.x。
但是,对 3.0 的更改并不是 IMO 的一项重大更改。除了“print”是一个函数和新的字符串格式化系统之外,它实际上或多或少与以前相同。
事实上,我发现我的大部分旧脚本(那些不依赖于 3.0 不兼容的 3rd 方库的脚本)在我更新所有打印和字符串格式后在 3.0 中可以完美运行。在某些情况下,我还必须更改一些模块名称(特别是“电子邮件”模块中的内容),但除此之外没什么大不了的。
此外,到目前为止,我为 3.x 兼容性更新的所有脚本在 2.6 中似乎仍然可以完美运行(但当然不是旧的 2.x,因为它们缺少新的 3.x 语法)。
我不切换的主要原因是很多书籍和编码挑战网站仍然是 2.x。我安装了 3.x 并很快意识到我必须卸载并转到 2.x。
由于缺乏向后兼容性,切换很困难,尤其是在涉及 C 代码的情况下。虽然我知道 unicode/string 可能对某些人非常有用,但我自己当然不在乎。
基本上,Py3k 并没有解决我关心的许多问题(分发问题、模块版本控制、简化的导入模型)。
Python 3+ 不支持 numpy。 更正:现在可以了。因为它现在支持 mathplotlib。