私はPythonアプリケーションのパッケージ化の世界に飛び込み、対処することになっているすべての概念とオプションのために頭が回転し始めるこの混乱状態に陥ることができました。
質問:
何を達成する必要がありますか?gitサーバーにあるソースからPythonプロジェクトをデプロイします。デプロイツールはすべての依存関係を取得してインストールする必要があります。そのほとんどはPIP経由で利用可能であり、1つはGit経由でフェッチしてインストールする必要があります。最終結果はPip経由でインストールできるはずなので、次のように実行できます。
[~] git clone git://some/path/project.git
[~] pip install project/
コンテキスト: 現在、Distutils2に必要な処理を実行させようとしていますが、「generate-setup」コマンドを使用して作成されたsetup.pyがPipと一緒に再生されないようです。
Distutils2を使用したかったのは、それがすべての将来の保証になるはずだからです。しかし、すべてのツールに関するさまざまなドキュメントは、男が自分の正気を疑うような方法で、ひどいものです(正確な情報と古くて不正確な情報が混在しています)。
だから私は何をすべきですか?distutilsとsetup.pyに固執しますか?それとも、Buildoutのようなものを見る必要がありますか?
親切な回答者は、私が特定のツールで行うことになっていることをレイアウトしてください(たとえば、Distutils2を使用してコードをデプロイし、PIPを使用して依存関係をインストールし、git依存関係の場合はスクリプトを記述し、XYZを実行してすべてを接着します)。
編集:私はDistutils2 1.0a4を使用していますが、これはドキュメントと互換性がないようです。
Edit2:質問を再フォーマットして、私の質問が実際に何であるかを明確にしました。
Edit3:これはPythonのパッケージ化と配布のツールチェーンを壊す私の4回目の試みです。私は他の人に私の仕事をさせようとはしていませんが、新人にとって、特定のツールが何をすべきか、どこで開始し、どこで終了するかを解読することはほとんど不可能です。特にツール間の機能の重複のため。私は、私を秘密に導く可能性のある賢人に囲まれたシリコンバレーにいるわけではなく、公開されているドキュメントは役に立ちません。
最終編集: この質問を始めるとき、私はvirtualenvをBuildoutに置き換えることを本当に考えていませんでしたが。しかし、調査をしていると、いつも知っていることに気づきましたが、はっきりとはわかりませんでした。Pythonのパッケージ化とデプロイメントの自動化には多くの方法があります。あなたが物事を成し遂げるのを助けることができる多くのツールもあります。ただし、ツール間には機能が大幅に重複していますが、ツールチェーンは常に進化しており、これまでのところ、明確な「標準的なベストプラクティス」はありません。配布ツールチェーンの軍拡競争はまだ完全に熱くなっており、明確な勝利者はまだ現れていません。これは、Pythonのたわごとのほとんどが正しく機能することを期待している初心者にとっては混乱を招く可能性があります。私が求めていたのは(ビルドアウト方式のdistutils / setuptools + pip + virtualenv、またはビルドアウトと半統合されたもの)、確かに実行可能です。しかし、それが不可能であるという理由ではなく、誰もそれを行わないという理由で、それはあまり意味がありません。このレベルの洗練が必要な場合は、コミットする必要があります。個人的には、virtualenvを(このプロジェクトのために)残して、Buildoutを採用することにしました。