3

目前我的系统上安装了 Python 3.1.1,我的服务器上安装了相同的版本,WSGI 3.0 在 Apache 2.2 上运行。

我想继续使用 Python 3.1,但我发现很多库/框架还不支持它,即 Django、Pylons、MySQLdb 等。

我还检查了我在朋友服务器上的一个帐户,它正在运行 Python 2.3.4 ...

我想编写一种可以扩展为 CMS 的博客/论坛类型的应用程序,并最终为其编写相关的桌面应用程序,作为一种长期的宠物项目。

我想尽可能使用最新版本的 Python 以获得最佳安全性和与未来桌面应用程序的最高一致性,同时仍保持良好的可移植性,并支持我将使用的大多数框架和库。

但我迷失了我应该选择哪一个。似乎 2.4 具有最大的可移植性,但它有点过时了,我不想最终使用一堆无法编译的 2.4 后特性,并且不得不用更混乱的代码重新编写补偿它。2.6 会更好,但似乎很多库仍在移植到它,而 3.1 将是最好的,因为它消除了语言中的许多繁琐。

我想强调的一件事是,如果我选择旧版本的 Python,我会很高兴知道我会错过什么。例如,如果我需要我的应用程序在我朋友服务器上的旧 Python 2.3.4 帐户上运行,我会缺少哪些新版本中存在的库/功能?我肯定会遇到哪些问题让我希望我使用的是 Python 2.6 或 3.1?这些功能中的哪些可以通过__future__导入获得?

那么,最好的方向是什么?我应该只使用 2.6 并处理任何问题吗?我应该选择 2.4 以最大限度地提高将其分发到共享托管环境的能力吗?或者我应该直接跳到 3.1 并有一个稍微残废的应用程序,直到像 MySQLdb 这样的库赶上来?

4

4 回答 4

4

目前,Python 3 尚未广泛部署在生产环境中。取决于您使用 Python 的目的。如果它只是用于一次性脚本,那么无论哪种方式都可以,如果想法是使用第三方模块、C 模块或轻松部署,那么请选择 2.4+ 版本中的任何一个。许多项目努力保持 2.3 的兼容性,但使用 2.4-2.6 应该没有任何问题,因为语言的变化很小。如果可以,请使用 2.6,因为它最接近 Python 3,因为它有一些向后移植的特性。

Python 3 的问题是 Catch 22:

  • 最有用的第三方模块仍未移植到 3,因为开发人员正在等待广泛使用,
  • 人们无法迁移,因为他们依赖的模块还没有迁移,这使得 sage 很低。

使用 2.4-2.6 中的任何一个都不应该有任何问题,给 3 一些时间。

使用 Python 2.6

于 2010-02-23T22:44:32.397 回答
2

如果您不确定,请从 Python 2.5 开始。

看看 Google App Engine(基于 Django)。它使用 Python 2.5 并且是免费的。但是,您将无法调用 scipy(例如)或任何内部带有“C”的库。

使用 Python2.5,您将拥有最大的可移植性。而且,python3k 并没有真正在行业中使用。

于 2010-02-23T22:24:20.003 回答
1

“2.6 会更好,但似乎很多图书馆仍在移植到那个”

什么?您需要的哪些库“仍在移植”?

“3.1 将是最好的”“但我发现很多库/框架不支持”

正确的。你在问题中已经说过两次了。这很清楚。

“我应该只使用 2.6 并处理任何问题吗”

什么问题?你有什么具体的顾虑吗?

它似乎工作得非常非常好。您的具体担忧是什么?

于 2010-02-23T22:21:34.940 回答
0

对于 Intranet Web 应用程序,我必须安装 python 2.5(由于 wiki、错误跟踪器和 httpd WSGI 兼容性的组合)。对于自定义 Web 应用程序,我在 python 3.2 上进行了标准化。因此,我同时安装了两者。我为 3.2 编写并根据需要将特定库升级到规范。但是我不想修改的大包使用他们自己的 2.5。目前 3.2 和 3rd 方包之间的兼容性仍然是一个问题,缺乏适当的 python 配方也是如此。

总结:安装两个版本。

于 2011-07-13T23:15:39.350 回答