18

我问这个是出于可部署的原因。例如,如果我用 python 编写解决方案,由于没有采用 python 3,我觉得一定要写到 2.x。这是我日常关心的主要问题,我想弄清楚发生了什么。

对于这里的许多基于 python 的问题,人们提供的解决方案在 python 3.x 中根本不起作用

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

为什么?

4

12 回答 12

33

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

【不过也必须注意,很多Django项目中使用的django第三方包和扩展,都处于Python 3兼容性实现的各个阶段。可以在跟踪各种项目状态的Django 包网站中找到更多详细信息。]

Django 尚未迁移到 3.0。这就是我需要知道的。

相关问题

这些问题中的大多数答案都反映了相同的观点。除了 Django,太多的框架/库——WxPython、PyGame、Django 等——仍然没有采用它。我敢肯定,除非他们这样做,否则不会采取行动。

于 2009-04-20T02:28:15.337 回答
18

因为我的代码库所依赖的主要库还没有发布 3.x 版本。(wxPython、matplotlib、numpy 等)

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

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

于 2009-04-20T02:28:48.783 回答
4
  1. 编译的第 3 方模块尚未更新。
  2. 不同的语法
  3. 较慢的整数。
  4. freenode 上的#python IRC 频道在其标题中显示切换为时尚早。
于 2009-04-20T02:25:48.823 回答
4

3rd 方工具和库。我无法让某些事情在 2.6 下工作(不是很多麻烦,请注意,但有些麻烦。)

在我看来,生态系统是 Python 的最大优势之一,而此时升级到 3.0 时,其中的很多东西都被抛在了脑后。(一年后,我相信故事会完全不同。)

(很明显,这里有先有鸡还是先有蛋的问题,不过幸好不是我要解决的问题,所以我还是在 2.6 待会儿吧。)

于 2009-04-20T02:40:21.050 回答
3

对于这里的许多基于 python 的问题,人们提供的解决方案在 python 3.x 中根本不起作用。

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

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

于 2009-04-20T02:27:07.557 回答
1

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

于 2009-04-20T10:51:39.667 回答
1

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.

于 2009-04-20T09:34:45.017 回答
1

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

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

于 2009-04-20T12:11:37.417 回答
1

不幸的是,出于与大多数其他人所说的相同的原因 - 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 语法)。

于 2009-06-11T07:58:12.377 回答
1

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

于 2011-07-06T01:40:34.563 回答
0

由于缺乏向后兼容性,切换很困难,尤其是在涉及 C 代码的情况下。虽然我知道 unicode/string 可能对某些人非常有用,但我自己当然不在乎。

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

于 2009-06-11T08:04:57.200 回答
0

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

于 2011-07-06T02:05:56.897 回答