用于桌面应用程序的首选python网络框架/库

时间:2012-06-08 10:28:15

标签: twisted tornado gevent

我想用python编写一个p2p共享软件,它主要用于windows,但也适用于linux。所以我尝试了一些框架/库,比如Twisted,Gevent和Tornado(对于Windows桌面客户端来说龙卷风可能不是很好)。

但我不知道选择哪一个。

Twisted有点大,我想...... 我认为Gevent在* nix平台中更有用。 Tornado是一个Web服务器,因此可能不适合桌面应用程序。

2 个答案:

答案 0 :(得分:1)

Twisted是最适合开发网络应用程序的。它包含用于实现协议的最多支持代码。 Twisted还包括最好的GUI库集成。它适用于Gtk(在Windows上)和Qt3和Qt4。它也可以与wxWidgets一起使用(尽管这不如Gtk或Qt3 / 4支持)。它也可以与Windows GUI事件循环集成。

当然,根据您的需求极少(几乎不存在)描述,建议Twisted是最适合您需求的库是荒谬的。我认为,对于任意网络应用程序的需求,Twisted可能至少与您列出的其他选项(以及Python中可用的任何其他选项)一样适合(如果不是更适合)。但是,不管它是否最适合您的特定情况,我都不能说。

答案 1 :(得分:0)

我认为Windows中所有这些的基础事件循环的默认值将基于Select(尽管至少看起来Twisted具有针对IOCP的平台特定支持)。

对上述差异有更好理解的人应该发表评论,但从开发人员的角度来看,选择主要是围绕首选语法。 Twisted通过反应器模式实现一切,而gevent使用协同例程。我会看一下每个的简单例子,看看哪个更适合你的敏感度。