Tornado 和 Python 3.x
3 个回答
Tornado是一个不错的网页框架,它有点像twisted,但没有twisted的那些修复和功能。我之前做过一个移植到twisted的工作,基本上就是删掉了一些代码。
其中一些功能是非常重要的。比如说,如果你在使用WSGI(一个网页服务器网关接口),你就会在一个非阻塞的网页框架上造成阻塞。这会引发一些糟糕的事情。Twisted的异步网页框架也有一个WSGI容器,但它使用deferToThread
来防止阻塞其他请求。虽然这仍然不是扩展应用的正确方法,但它崩溃的速度要慢得多。
没有一个好的测试套件的软件就像是遗留软件——即使它昨天刚发布!所以,第一步很重要,就是开始建立一个测试套件。我推荐你看看链接里的Feathers的书,但你也可以先从这个PDF入手,这是一篇Feathers写的文章,概述了书中一个主要的核心思想和实践。
一旦你开始有了测试套件,就用Python 2.6运行它,并加上-3
这个标志,这样可以提醒你一些2to3
可能会遇到的问题;等这些问题解决后,就可以尝试用2to3
,然后用Python 3来运行测试套件。你肯定需要在这个过程中不断完善测试套件,我建议你定期把所有的改进提交给上游的Tornado开源项目——这些测试对任何需要维护或移植Tornado的人来说都是有用的,不仅仅是对那些对Python 3感兴趣的人。所以,运气好的话,你可能会吸引到更多的关注者和贡献者来帮助完善测试套件。
我真不敢相信在2009年,还有人发布大型开源项目居然没有好的测试套件,但我相信你说的,Tornado的开发者们确实是这样做的……
首先,我想为回答一个过时的话题道个歉,但我在谷歌上找到这个话题后,觉得有必要更新一些重要信息!
在Tornado 2.0版本中,增加了对Python 3.2的支持!
https://github.com/facebook/tornado/blob/master/setup.py
http://groups.google.com/group/python-tornado/browse_thread/thread/69415c13d129578b