web-dev-qa-db-ja.com

pythonに相当するMaven

私はJava開発者/ python初心者であり、Maven機能、特に依存関係管理とビルドの自動化がありません(ビルドするのではなく、展開用のパッケージを作成する方法を教えてください)。

これらの機能を実現するために同等のpythonがありますか?
注:python 2.xを使用します

ありがとう。

127
Enno Shioji

Pythonは、依存関係とパッケージ化にdistutilsとsetuptoolsを使用します。

基本を説明するチュートリアルがあります: http://docs.activestate.com/activepython/3.2/diveintopython3/html/packaging.html

要するに、依存関係およびスクリプトのコンパイル/インストール情報を含むsetup.pyファイルがあり、これを使用してegg、dist tarball、binary tarballなどをビルドできます。

61
Daniel Kluev

直接の一致はありません。ただし、取得できる最も近いもの:

  • zc.buildout :クローズド環境のセットアップ、依存関係のダウンロード/処理、スクリプトの初期化などを行うことができます。また、プラグイン(または「レシピ」と呼ばれる)でビルドします。数年前にベータ段階で使用していましたが、おそらくそれ以降に進化しました。 Mavenと同様に学習曲線がありますが、最も強力でもあります。

他の製品は、Maven/zc.buildoutのサブセットです。

おそらくAntおよびShellスクリプトを知っているので、次のPythonツールも確認できます。

  • Fabric または Paver :フレーバーが追加されたコマンドラインタスクランナー。従来のコマンドライン実行をpythonでラップし、さまざまなタスクをより強力な方法で管理できるようにします(タスクの依存関係、出力の解釈、リモートサーバーでのコマンドの実行など)。基本的に、シェルスクリプトでできることは何もありませんでしたが、Pythonでは、はるかにわかりにくいです。
33
Tuukka Mustonen

PyBuilder は、Mavenに大きな影響を受けていますが、構成にXMLではなくpythonを使用しているため、実際には読みやすいです。

依存関係管理用プラグインがあり(フードの下でpipを使用し、ビルドとランタイムの依存関係を区別します)、mavenとは異なり、1つのコマンドでビルドライフサイクル全体を実行できます。

14
user245678

展開については、distutils/setuptoosに加えて、 pip package (その下のsetuptoolsを使用)も確認してください。失敗したインストールをロールバックし、アンインストールすることもできます(easy_install/setuptoolsから欠落しているもの)。さらに、要件テキストファイルを使用して依存関係を指定できます。

8
ars

Virtualenvを使用してスタンドアロンプ​​ロジェクト環境を作成し、pip/easy_installを使用して依存関係を管理するとよいでしょう。

5
Ning Sun