我已经学习python有一段时间了。在开始这个“学习 python”的过程中,我决定学习最新最好的 3.1 版本的 python。我现在对这个决定感到遗憾,因为我想尝试一些 Python Web 开发框架,看起来其中许多还不支持 3.1,而且看起来他们可能需要数年时间才能支持新版本的 Python,尤其是Django和涡轮齿轮。这真是令人失望。因此,SO 用户,您对我的 web 框架有什么建议吗?它在 3.1 上运行并支持一些现代(我想我永远不会学习;-)) web 框架功能,如 MVC/ORM/URL 路由/缓存等.
5 回答
试试Python2.7怎么样?,许多 python 3.x 特性最近都向后移植到 2.7,比如 OrderedDict、更快的 io 模块、集合推导、字典推导等...
根据我的经验,Python 2.7 与 django 1.2 主干版本完全没有问题。
在我看来,学习新框架比从 Python2.x 切换到 Python3.x 需要更多时间,所以选择一个框架,继续使用 python 2.x 并在时机成熟时切换到 3.x。
和其他人一样,我建议您从 Python 2.6.x 开始——Python 2.7 将在今年夏天发布,尽管您今天可以获得 alpha 或 beta 版本。
尽管 Python 3.x 与 2.x 向后不兼容,但 Python 语法不会无法识别……几乎所有东西都与 2.x 非常相似,但是当print
从语句更改为功能。所以暂时不用担心 Python 3。正如其他人所提到的,您可以立即开始使用大量适用于 Python 2.x 的 Web 框架。
此外,不要仅仅因为编号而误以为 Python 2 已经过时,也不能连续遵循时间线。换句话说,Python 2.7 将比 Python 3.0 和 3.1 都更新。(3.2 将在今年年底之前发布。)同样,Python 2 还没有 EOL —— 2.x 和 3.x 都在积极开发中。
工业界仍然在 Python 2.x 上运行;3.x 的出现提醒我们下一代已经到来,现在是所有较低级别的基础设施和框架都应该开始移植工作以便我们最终迁移的时候。
如果你想了解更多关于 Python 2、Python 3 之间的关系,以及两者之间的变化/差异以及时间线和迁移,你可以查看我今年早些时候写的这篇在线文章:
“Python 3:编程语言的演变”
http://www.informit.com/articles/article.aspx?p=1328795
我还在二月份的 PyCon 2010 上就同一主题发表了演讲。您可以在此处访问视频和幻灯片:http:
//us.pycon.org/2010/conference/schedule/event/29/
CherryPy 3.2(仍在开发中)将在 Python 3.x 上运行
在使用 2to3 后,Bottle 也可以在 Python 3.x 上运行。很容易做到,而且确实有效。然而,Bottle 不是一个“完整的框架”,但它很容易使用。
编辑:
对于我正在慢慢开发的游戏,我在 Python 3.1 中使用了 Bottle,具体来说是无堆栈 Python 3.1。但在工作中,我只使用 Python 2.6 很快我将使用 Webpy。
我工作的网站是用 PHP 编写的,但是当我需要添加一个新功能时,我可以轻松地将其与所有 PHP 代码分开,我将在 python 中完成。尽管我几乎每天都在使用 PHP,并且每个月只使用几次 Python,但我仍然可以在 Python 中比 PHP 更快地完成工作:)
Python 2.6 和 Python 3.1 并没有太大的不同,我只是建议你同时学习这两个版本,尤其是因为 Python 的两个分支都将共存一段时间……所以最好只学习细微的差异。文档“ Python 3.0 中的新增功能”解释了 2.6 和 3.0 之间的大部分差异。
实际上有(是)一个到 Py3k 的 Django 端口。
http://bitbucket.org/loewis/django-3k/
我还记得在 django-developers 邮件列表上阅读了有关将 Django 移植到 py3k 的大学项目的帖子,但我目前找不到该帖子。
编辑 哦,这里是:
https://bitbucket.org/fiji/django-3k/
该项目由多伦多大学的学生领导。:-)
结束编辑
查询诸如“Django py3k port”之类的东西会带来一些有用的结果。
另请查看这些 URL: