Pylons

Pylons は Python 言語で書かれた オープンソース の webアプリケーションフレームワークである。再利用性を促進し、機能を各モジュールに分割するためにWSGI 標準を広い範囲にわたり採用している。 Pylons は、Django や TurboGears などを含む昨今の webアプリケーションフレームワークの中でも最も新しいもののひとつである。Ruby on Railsに強い影響を受けており、主要なコンポーネントのうちRoutes と WebHelpers は、Rails の機能を Python で再実装したものである。 Pylonsはメンテナンスモードに移行し実質的な開発は終了し、後継となるPyramidに移行している。 Pylons は他社が開発したツールに基づくほぼ完成したスタックを持つことで知られており、明らかに NIH シンドロームを避けている。 Pylons の公式なインストールの方法は、the Python CheeseShop 経由でEasyInstall を用いて行うことで、追加のツールもたいていは同じ方法でインストールされる。EasyInstall は必要に応じてパッケージの依存関係を解決する。Pylons と Paste を一緒にパッケージした配布系もあるが、配布系のパッケージは公式の配布物より遅れる傾向がある。Pylons は .egg ファイルを .zip ファイルに変更し、内容を展開することでもインストールできる。 Pasteプロジェクトの設定、テスト、配置に使用される。共通の INI構成フォーマットを用いており、Paste では開発と配置の設定を、インタラクティブなデバッガなどの Pylons の複雑な部分を製品版のユーザーから隠蔽した状態で開発者が同じコードベースをもとに動作させられるよう、複数の"プロファイル"を用いることができる。 Selectorなどの WSGI 互換の URL ディスパッチャであればどれでも使用可能だが、現在 Pylons 用に広く使われている唯一の URL ディスパッチャはRuby on Railsの URL ディスパッチ機構を Python で再実装したRoutes である。 Pylonsでも採用されたRailsのもう一つの機構が、Routes の設定に基づき URL のマッピング機能を提供するWebHelpersである。WebHelpers は、script.aculo.us や Prototype ライブラリを利用したJavaScriptコードを生成するためのユーティリティ的な機能も提供する。 HTML フォームの検証と生成のために、FormEncode と FormBuild が用いられている。Mako の継承モデルを用いてフォームの生成を行うために、Mako も一部で用いられている。 Myghty がバージョン 0.9.5 まで Pylons のデフォルトのテンプレート言語であったが、バージョン 0.9.6 で Mako に置き換えられた。いずれのテンプレート言語もインクルード、継承、任意の Python コードの埋め込みをサポートするテキストベース(XMLベースのものではない)のテンプレート言語である。 Pylons の緩く結合されたレイヤ構造により、それ以外のテンプレート言語も利用可能である。XML ベースのテンプレート言語Genshi もMako や Myghty いずれかの代わりに使用することができる。 Pylons にはデフォルトのデータベースライブラリはない。SQLObject と SQLAlchemy が知られている。 フレームワークのPylons はPylons プロジェクトが開発してきたが、Pylons 2 の開発を進めるうちに repoze.bfg (Zope 由来のコンポーネントをWSGIアプリケーションで利用できるようにしたコンポーネント集であるrepozeで構成されたフレームワーク) と似てきたことで、コードベース と開発コミュニティをマージする方向へとシフトする。2010年11月のrepoze.bfg とのプロジェクト統合の合意により、Pylonsの新しいバージョンはオリジナルのPylons 1.0 と大きく変わることとなる。こうしてPylonsプロジェクトはメンテナンスモードに移行し、Pyramidと銘打ったrepoze.bfgをコードベースとする新しいPylons プロジェクトが開始されることとなった。 Pyramid は、WSGIベースのPythonで書かれたオープンソースのWebアプリケーションフレームワーク。Zope・Pylons・Djangoに触発された、小さく速く堅実 (down-to-earth)なフレームワークである。 Pylons 1.0は、WSGIベースのフレームワークとして代表的な存在であったが、PylonsApp とWSGIControllerメソッドは実質的にAPI として凍結されているなど、拡張性を取り入れるために改良しようとすることが困難であることが分かった 一方、repoze.bfgは、Zope 3のコンポーネントアーキテクチャを利用しており、Zopeのコミュニティから大きな注目を集めていた。 2010年に、Pylonsフレームワークは、repoze.bfgをベースとした開発に移行することを発表した。それは結果として、repoze.bfgプロジェクトがPylonsプロジェクトに合流し、repoze.bfgがPyramidに改称することであった。 バージョン1.3から、Python 3 互換となった。 Python 3.2 以上であれば、 Pyramidを使用できる。 Pylons Project home page Pylons framework Pyramid framework repoze.bfg framework Pylons Wiki Sites using Pylons Pylons に関連する文書の日本語訳 Pylons の標準インストールで用いられるパッケージ、および人気の高い追加パッケージ Myghty - URL のディスパッチ、コントローラ、キャッシュ機構、テンプレート機能など Mako - Myghty 以外のテンプレートエンジン Python Paste - プロジェクトの設定、テスト、配置 EasyInstall - インストールとパッケージの依存関係 Routes - Rails routes に基づく Routing の実装 FormEncode - フォームの検証と生成 WebHelpers - HTML ヘルパー機能 pylons-discuss on Google Groups Google Groups からの情報によると(2018年5月8日): メンバー 2871 人 月平均 25 メッセージ(過去3ヶ月間) [脚注の使い方] ^ Haas, Christoph Beginning Pylons. Retrieved July 5, 2007 ^ Genshi Wiki Pylons with Genshi Retrieved July 5 2007 ^ a b “Pylons ユーザのための Pyramid 移行ガイド”. 2014年3月26日閲覧。 ^ BFG_HISTORY.txt ^ “Pyramid Change History 1.0(2011-01-30)”. Agendaless Consulting. 2013年9月14日閲覧。 ^ “Pyramid Change History”. 2018年5月8日閲覧。 ^ Chris McDonough. “repoze.bfg introduction”. 2010年9月21日閲覧。 ^ “Why Extending Through Subclassing (a framework’s classes) is a Bad Idea (翻訳)”. 2014年3月27日閲覧。 ^ “Repoze.bfgについて”. 2014年3月27日閲覧。 ^ Gary Poster (2010年9月17日). “Zope Summit, DZUG, repoze.bfg”. 2010年9月21日閲覧。 ^ Ben Bangert (2010年9月18日). “Emails explaining the Pylons 2 structure”. 2010年9月21日閲覧。 ^ “repoze.bfg is now Pyramid”. 2011年1月3日閲覧。 ^ “Pyramid 1.3 の新機能”. 2014年3月27日閲覧。 ポータル FLOSS Webアプリケーションフレームワーク Pythonを使っている製品あるいはソフトウェアの一覧