PythonのMaven相当物[終了]


146

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

これらの機能を実現する同等のpythonはありますか?
注:私はpython 2.xを使用しています

ありがとう。

回答:


70

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

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

つまり、依存関係とスクリプトのコンパイル/インストール情報を含むsetup.pyファイルが作成され、これを使用して卵、dist tarball、バイナリtarballなどを構築できます。


6
熱狂的なエレクトロディパージョンのマークピルグリムがそのサイトを閉鎖したため、ここにactivestateのミラーがあります。
ジギー

2
これは現在、信頼できるガイドなので、Pythonパッケージングユーザーガイドを指すように更新することをお勧めします。
kojiro 2016年

38

直接の一致はありません。しかし、あなたが得ることができる最も近いもの:

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

その他のオファリングは、Maven / zc.buildoutのサブセットです。

  • Setuptools:パッケージの作成/インストール
  • PIP:依存関係管理
  • VIRTUALENV + virtualenvwrapper(あなたは、Javaを必要としない何か)、別のpython環境を管理します:

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

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

14

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

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


9

デプロイには、distutils / setuptoosに加えて、pipパッケージ(下にあるsetuptoolsを使用)もご覧ください。失敗したインストールをロールバックしたり、アンインストールしたりできます(easy_install / setuptoolsに不足しているもの)。さらに、要件テキストファイルを使用して依存関係を指定できます。


6

virtualenvを使用してスタンドアロンプ​​ロジェクト環境を作成し、pip / easy_installを使用して依存関係を管理することをお勧めします。


7
それは悲しい:)
Gayan Weerakutti
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.