为什么不切换到Python 3.x?

时间:2009-04-20 02:21:13

标签: python deployment python-3.x

我出于可部署的原因问这个问题。就像在,如果我在python中编写一个解决方案,由于缺乏对python 3的采用,我觉得必然会写入2.x。这是我日常关注的一个问题,我想知道发生了什么。< / p>

对于许多基于python的问题,人们提供的解决方案在python 3.x中无法正常工作

所以,我问一个问题:什么阻止你在个人或工作环境中切换到python 3.x?转换脚本存在,但程序员(通常是最早的采用者)似乎拒绝升级。

为什么?

12 个答案:

答案 0 :(得分:33)

[编辑03/10/2014:这个答案现在已经过时了。 Django已经支持Python 3了一段时间。]

[但是,还必须注意的是,许多Django项目中使用的django第三方软件包和扩展都处于Python 3兼容性实现的不同阶段。更多详细信息可以在跟踪各种项目状态的Django packages website中找到。]

Django还没有移到3.0。这就是我需要知道的全部内容。

  

相关问题

     

这些问题中的大部分答案都表达了同样的观点。除了Django之外,太多的框架/库--WxPython,PyGame,Django等 - 仍然没有采用它。我肯定在他们这样做之前不会采取行动。

答案 1 :(得分:18)

因为我的代码库所依赖的主要库尚未发布3.x版本。 (wxPython,matplotlib,numpy等)

所以责任从我的角度来看是上游的。

如果我的所有依赖项都是3.x兼容的,我现在可能已经切换了。

答案 2 :(得分:4)

  1. 已编译的第三方模块尚未更新。
  2. 语法不同
  3. 较慢的整数。
  4. freenode上的#python IRC频道在其标题中说它太早转换。

答案 3 :(得分:4)

第三方工具和库。我无法让一些东西在2.6以下工作(不是很麻烦,请注意,但有些。)

正如我所看到的那样,生态系统是Python最大的优势之一,而此时达到3.0的目标已经消失了很多。 (在一年中,我确信这个故事会完全不同。)

(显然,这里有一个鸡和鸡蛋的问题,但幸运的是,这不是我的问题,所以我会留在2.6一段时间。)

答案 4 :(得分:3)

  

对于许多基于python的问题,人们提供的解决方案根本无法在python 3.x中运行。

我想你在这里回答了你自己的问题。缺乏向后兼容性使3.0比无缝升级更难销售,因为你必须调整你的想法并放弃一些编程技术来使用新版本。

当他们有我的大脑升级脚本时给我回电话。

答案 5 :(得分:1)

因为Mac OSX Leopard上的默认安装2.5工作得很好。我没有必要升级,除了结束unicode的困境外,我认为没有升级的优势。

答案 6 :(得分:1)

如果您有兴趣转移到Py3k,一个有趣的方法是在Py3k中编写代码并使用3to2脚本,该脚本现在作为Google Summer of code项目的一部分编写,基于2to3脚本。

答案 7 :(得分:1)

我使用最多的操作系统Debian没有Python 3软件包,甚至没有“不稳定”(全新)分支。除非我自己编译(这是20世纪),否则对我来说意味着没有Python3。

我敢打赌,许多操作系统都存在同样的问题。

答案 8 :(得分:1)

不幸的是,出于与其他大多数人所说的相同的原因 - 第三方图书馆仍然没有与3.0兼容。 出于这个原因,除了一些GNU / Linux发行版(在我的情况下是Ubuntu)仍然附带Python 2.6,我还不能完全抛出2.x窗口。

然而,改为3.0并不是主要的IMO。除了“print”是一个函数和新的字符串格式化系统之外,它实际上或多或少与以前相同。

事实上,我发现在更新所有打印和字符串格式后,我的大多数旧脚本(那些不依赖于3.0不兼容的第三方库)将在3.0中完美运行。在某些情况下,我还必须更改一些模块名称(特别是“电子邮件”模块中的内容),但除此之外没什么重要的。

此外,到目前为止,我为3.x兼容性更新的所有脚本似乎仍然在2.6中完美运行(但当然不是更老的2.x,因为它们缺少新的3.x语法)。

答案 9 :(得分:1)

我没有转换的主要原因是,许多书籍和编码挑战网站仍然是2.x.我安装了3.x并很快意识到我必须卸载并转到2.x。

答案 10 :(得分:0)

由于缺乏向后兼容性,切换很困难,尤其是涉及C代码时。虽然我理解unicode / string对某些人来说可能非常有用,但我自己并不关心它。

基本上,Py3k没有解决我关心的许多问题(分发问题,模块版本化,简化导入模型)。

答案 11 :(得分:0)

Python 3+不支持numpy。 更正:现在可以。因为它现在支持mathplotlib。