私は、Python (特に Django) ベースの Web サイトとそれに付随するバックエンド ツールのベータ版を立ち上げようとしているチームのメンバーです。チーム自体の規模は過去数週間で 2 人から 4 人に倍増しており、少なくとも今後 2 か月間は成長が続くと予想しています。私たちを悩ませ始めた問題の 1 つは、開発環境を構成し、すべての適切な卵をインストールするなどの点で、全員を最新の状態に保つことです。
このプロセスを簡素化し、エラーが発生しにくくする方法を探しています。zc.buildout と virtualenv はどちらも、この問題に対処するための優れたツールのように見えますが、どちらも主に python 固有の問題に集中しているようです。他の言語 (具体的には Java と Ruby) のいくつかの小さなサブプロジェクトと、ネイティブにコンパイルする必要がある多数の Python 拡張機能 (lxml、MySQL ドライバーなど) があります。実際、セグメンテーション違反、malloc エラー、およびあらゆる種類の同様の問題を回避するために、これらの拡張機能のいくつかを適切なバージョンの共有ライブラリに対してコンパイルすることが、私たちの最大の悩みの 1 つです。4 人のうち、4 つの異なる開発環境 (ppc の 1 人のヒョウ、intel の 1 人のヒョウ、1 つの ubuntu と 1 つの Windows) があることは役に立ちません。
最終的に理想的なのは、dos/unix プロンプトから、おおよそ次のように動作するものです。
$ git clone [リポジトリの URL] ... $ python setup-env.py ...
次に、zc.buildout/virtualenv が行うこと (python インタープリターをコピー/シンボリック リンクし、egg をインストールするためのクリーンなスペースを提供する) を行い、ネイティブ共有ライブラリの依存関係のインストールを含む、必要なすべての Egg をインストールし、ruby プロジェクト、Java プロジェクトなどをインストールします。 .
明らかに、これは、開発環境を立ち上げたり、ステージング/運用サーバーにデプロイしたりするのに役立ちます。
理想的には、これを実現するツールを Python で記述/拡張できるようにしたいと考えています。これは私たちのチームの共通言語であるため (そして今後もそうなるでしょう)、他の言語でのソリューションも受け入れます。
それで、私の質問は次のとおりです。より大きな/より広いインストールベースを処理するために、これらのソリューションのいずれかを使用して共有できるより良い代替案や経験について誰か提案はありますか?