目前我在我的系统上安装了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这样的库赶上来?
答案 0 :(得分:4)
目前,Python 3尚未在生产中广泛部署。取决于您使用Python的内容。如果它只适用于一个关闭脚本,那么无论哪种方式都可以,如果想要使用第三方模块,C模块和/或无痛地部署,那么适用于任何2.4+版本。许多项目都努力保持2.3的相似性,但是使用2.4-2.6时不应该有任何问题,因为语言的变化很小。如果可以的话,使用2.6,因为它最接近Python 3,因为它有一些向后移植的功能。
Python 3的问题是Catch 22:
使用2.4-2.6中的任何一个时,你应该没有任何问题,给3,一段时间。
答案 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配方也是如此。
总结:安装两个版本。