160

私は Java 開発者/Python の初心者ですが、Maven の機能、特に依存関係の管理とビルドの自動化が不足しています (つまり、ビルドはしませんが、デプロイ用のパッケージを作成する方法は?)

これらの機能を実現するための python に相当するものはありますか?
注:私はpython 2.xを使用しています

ありがとう。

4

5 に答える 5

80

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

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

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

于 2010-07-24T06:45:49.090 に答える
42

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

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

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

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

  • FabricまたはPaver : フレーバーが追加されたコマンドライン タスク ランナー。従来のコマンドライン実行を Python でラップし、さまざまなタスクをより強力な方法で管理できるようにします (タスクの依存関係、出力の解釈、リモート サーバーでのコマンドの実行など)。基本的に、シェル スクリプトでできないことは何もありませんが、Python ではそれほど不可解ではありません。
于 2011-06-14T13:52:53.387 に答える
17

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

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

于 2014-05-01T17:04:54.037 に答える
9

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

于 2010-07-24T06:56:16.153 に答える
6

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

于 2010-12-30T06:37:22.843 に答える