0

Pythonを使用してp2p共有ソフトウェアを作成したいと思います。これは主にWindowsで使用されますが、Linuxでも機能します。そこで、Twisted、Gevent、Tornadoなどのフレームワーク/ライブラリを試しました(tornadoはWindowsデスクトップクライアントには適していません)。

しかし、どれを選ぶべきかわかりません。

ツイストは少し大きいと思います...Geventは*nixプラットフォームでより便利だと思います。TornadoはWebサーバーであるため、これはデスクトップアプリには適していない可能性があります。

4

2 に答える 2

1

Twistedは、これらの中でネットワークアプリケーションの開発に最も適しています。プロトコルを実装するためのほとんどのサポートコードが含まれています。Twistedには、これらの中で最高のGUIライブラリ統合も含まれています。Gtk(Windowsでも)とQt3およびQt4で動作します。wxWidgetsでも動作する可能性があります(ただし、これはGtkやQt3 / 4ほどサポートされていません)。WindowsGUIイベントループとも統合できます。

もちろん、ニーズの記述が非常に最小限(ほとんど存在しない)であることを考えると、Twistedがニーズに最適なライブラリであると示唆するのはばかげています。Twistedは、リストした他のオプション(そして、実際、Pythonで利用可能な他のオプション)よりも、任意のネットワークアプリケーションのニーズに少なくとも同じくらい適していると思います。しかし、それがあなたの特定のケースに最も適しているかどうかは、私には言えません。

于 2012-06-08T13:07:46.213 に答える
0

Windowsでのこれらすべての基になるイベントループのデフォルトはSelectに基づいていると思います(少なくともTwistedはIOCPのプラットフォーム固有のサポートを持っているようですが)。

上記の違いをよりよく理解している人はおそらくコメントする必要がありますが、開発者の観点からは、主に優先構文が選択されます。Twistedは、geventがコルーチンを使用している間、reactorパターンを介してすべてを実装します。それぞれの簡単な例をいくつか見て、どれがあなたの感性に適しているかを見ていきます。

于 2012-06-08T21:33:12.497 に答える