私たちのグループでは、主に検索エンジンのアーキテクチャとコンテンツの統合作業を行っており、そのコード ベースのほとんどは Python で作成されています。すべてのビルド ツールと Python モジュールの依存関係はソース管理にあるため、それらをチェックアウトして、os/プラットフォームに関係なく使用するために環境をロードできます。これは、 virtualenvが使用するアプローチと似ています。
私たちが使用する商用製品の 1 つが Python 2.3 に依存しているため、何年もの間、私たちは Python 2.3 と互換性のあるコード ベースを維持してきました。2004 年に 2.3 が登場して以来、新しいツールやライブラリには新しいバージョンの Python が必要になるため、長年にわたり、これはますます多くの問題を引き起こしてきました。
最近、ビルド環境を商用製品の環境への依存関係から切り離し、任意のバージョンの Python (または Java) を使用できるようにしました。以前のバージョンと下位互換性がある Python の最新バージョンとして Python 2.6 を標準化してから約 1 か月ほど経ちました。
Python 3.0 は (今のところ) オプションではありません。ビルド ツールと統合ツールを再び正しく動作させるには、コード ベースの多くを移行する必要があるからです。
私たちは Python 2.6 の新機能の多く、特に改善されたモジュールやクラス デコレータなどを気に入っていますが、依存している多くのモジュールが原因で Python 2.6 インタープリターがさまざまな減価償却警告を発します。EC2 クラウド クラスター ノードを管理するために私たちが関心を持っているもう 1 つのツールであるSupervisorは、Python 2.6 では正しく動作しません。
現在、本番環境ツールの開発に Python 2.6 を使用するのではなく、とりあえず Python 2.5 に標準化する必要があるのではないかと考えています。私たちが必要とするツールのほとんどは、Python 2.5 で正しく動作するようです。Python 2.6 の機能やモジュールに多くの依存関係が生じる前に、これを整理しようとしています。
どうもありがとう!
-マイケル