Pythonアドベントカレンダー2011(Python3) 25日目の裏 Pyramid@Python3 日本語訳

このエントリはPythonアドベントカレンダー2011の25日目として、書いてもらった Pyramid@Python3の翻訳です。

tarekはエキスパートPythonの著者であり、PyconJP2011でもPython3のパッケージングについて基調講演をしていただきました。

以下翻訳です。

Pyramid @ Python3

最近のChrisによるWebObの作業をよくチェックしているなら、

WebObとPyramidがPython3互換になったことを知っているだろう。

 

このことで、Python3は、これから新しくWebプロジェクトをはじめるのにとても魅力的な対象になった。

 

PasteとPasteScriptはまだPython3へのポーティングが必要だが、

Pyramidチームはそれを選択しなかった。

彼らは、自分たちが使うpasterの代替を作成した。

これらは、Pyramidを使うプロジェクトを初期化したり、.iniファイルを使ってアプリケーションを起動する。

PasteScriptとプロジェクトテンプレートを使うすべてのPython3フレームワークにとって、

Pasteを使わずに代替を使うのがシンプルな方法なのかは、わからない。

加えて、普通の典型的なWebアプリケーションを作るのに必要なほとんどのライブラリやPyramidの機能が、すでにPython3をサポートしてる。

たとえば、SQLAlchemyや、MySQLにアクセスするためのPyMysql、MemcachedのためのPylibmcだ。

 

まだ、Python3対応してなさそうなのは以下のもの。

  • gevent
  • gunicorn
  • python-ldap
  • Cornice ― まもなく対応する予定だ。

これらに挑戦してみたいと思ったら、Python3.2の最新版を使おう。

そして、https://github.com/Pylons/pyramid/wiki/Python-3-Portingを読んで、詳細を把握しよう。

足りないライブラリがあるなら、ここに追加してくれ。

メリークリスマス。

そしてここから訳者の解説でございます。

文中のChrisというのは、repozeプロジェクトを始め、repoze.bfg(後のPyramid)を作った人です。現在のpyramidチームのリーダーですね。webobもpylonsプロジェクトに合流して、両者で協力してpython3対応を進めてきたわけです。

Paste,PasteScript,PasteDeployとWSGI創設時から長らく使い続けられているライブラリ、ツール群でしたが、いまのところPasteDeployのみがPython3対応しています。Pyramidはさまざまな議論の末、PasteとPasteScriptから必要なコードだけポーティングして、Pyramid内の独自のコマンドとして取り込むことにしました。

Webアプリケーションを実行するような汎用ツールがPyramidをインストールしないと使えないのも異論がある話だと思います。ただ、Pyramidで使いたいだけなのに、汎用ツールで公開してしまってサポートしきれないという危険を感じてるのでしょうかね。リソースは有限ですから。

Pyramidと、MySQL, Memcache, SQLAlchemyとPython3で動けば、典型的なWeb+DBアプリケーションを作るのに不自由しなさそうです。ただし、サーバーはgunicorn使いたいです。

Corniceはtarekが最近公開した、pyramidベースのサービスフレームワークです。

pyramidの拡張性をいかしたつくりで、わかりやすいAPIと、Web APIをSphinxドキュメントにおとす(Pythonのリファレンスではなく、URLやHTTP Methodでドキュメントになる。すてきすぎ)Sphinx拡張がついてます。

ということで解説終わり。

メリークリスマス