11

我真的很喜欢Tornado,我想将它与 Python 3 一起使用,尽管它是为 Python 2.5 和 2.6 版本编写的。

不幸的是,该项目的源代码似乎没有附带测试套件。如果我理解正确,它的 WSGI 部分将不会那么容易移植,因为它的规范还没有为Python 3 做好准备(?),但我对 Tornado 的异步特性很感兴趣,所以 WSGI 兼容性不是我主要关心的问题,即使会很好。

基本上我想知道在尝试移植时要查看/注意什么,或者是否已经有端口/分叉(我找不到任何使用 google 或浏览github,尽管我可能错过了一些东西)。

4

3 回答 3

25

首先,我想为一个过时的主题的答案道歉,但是一旦我通过谷歌找到了这个主题,我想更新重要信息!

在 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

于 2011-06-13T04:45:53.797 回答
13

没有像样的测试套件的软件是遗留软件——即使它昨天已经发布了!-)——所以第一个重要的步骤是开始构建一个测试套件;我在 URL 中推荐 Feathers 的书,但你可以从这个 PDF开始,它是一篇文章,也是 Feathers 的,在本书之前并总结了本书的主要核心思想和实践之一。

一旦你启动了一个测试套件,就用 Python 2.6 运行它,并用一个-3标志来警告你2to3可能会遇到问题;一旦这些都修复了,就该2to3尝试使用 Python 3 测试套件了。毫无疑问,您必须不断加强测试套件,我建议定期将所有改进提交给上游 Tornado 开源项目—— 这些测试对任何需要维护或移植 Tornado 的人都有用,毕竟,不仅仅是对 Python 3 感兴趣的人,所以,幸运的是,你可能会获得追随者和越来越多的测试套件贡献者。

我不敢相信人们在 2009 年发布了主要的开源项目!!!,没有像样的测试套件,但我相信你,这确实是 Tornadoers 所做的......

于 2009-11-22T23:01:01.737 回答
4

Tornado 是一个很好的 web 框架,它看起来像twisted,但没有 twisted 的错误修复或功能。我做了一个端口来扭转一段时间,基本上只是删除了代码。

其中一些功能非常重要。例如,如果你在做 WSGI,你就是在阻塞一个非阻塞的 web 框架。坏事会发生。Twisted 的异步 Web 框架也有一个 WSGI 容器,但它deferToThread用来防止它阻塞其他请求。仍然不是扩展应用程序的正确方法,但它分崩离析的速度要慢得多。

于 2009-11-22T23:59:52.327 回答