我应该使用什么版本的Python来开发Web应用程序?

时间:2010-02-23 22:15:12

标签: python portability forward-compatibility

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

我想继续使用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 个答案:

答案 0 :(得分:4)

目前,Python 3尚未在生产中广泛部署。取决于您使用Python的内容。如果它只适用于一个关闭脚本,那么无论哪种方式都可以,如果想要使用第三方模块,C模块和/或无痛地部署,那么适用于任何2.4+版本。许多项目都努力保持2.3的相似性,但是使用2.4-2.6时不应该有任何问题,因为语言的变化很小。如果可以的话,使用2.6,因为它最接近Python 3,因为它有一些向后移植的功能。

Python 3的问题是Catch 22:

  • 最有用的第三方模块仍未移植到3,因为开发人员正在等待广泛使用,
  • 人们无法迁移,因为他们所依赖的模块尚未迁移,使圣人保持低水平。

使用2.4-2.6中的任何一个时,你应该没有任何问题,给3,一段时间。

使用Python 2.6

答案 1 :(得分:2)

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

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

使用Python2.5,您将获得最大的可移植性。此外,python3k并未真正用于该行业。

答案 2 :(得分:1)

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

什么?你需要哪些库“仍在移植到那个”?

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

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

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

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

它似乎非常,非常好。您有哪些具体问题?

答案 3 :(得分:0)

对于Intranet Web应用程序,我必须安装python 2.5(由于wiki,错误跟踪器和httpd WSGI兼容性的组合)。 对于自定义Web应用程序,我在python 3.2上标准化。 因此我同时安装了。我写的是3.2,并根据需要提供特定的库。但是我不想修改的大包使用自己的2.5。 3.2和第三方软件包之间的兼容性目前仍然是一个问题,缺乏适当的python配方也是如此。

总结:安装两个版本。