私はいくつかの.eggファイルを読んできましたが、私はlibディレクトリに気付いていますが、開発者としての利点と欠点は何ですか? Python Enterprise Application Kit communityからPythonライブラリ/アプリケーションを.eggファイルとしてパッケージングする利点は何ですか?
答えて
:
Pythonの卵は、Pythonの プロジェクトで 追加情報をバンドルする方法です "ジャーは、Javaにあるよう卵が...ニシキヘビにしています"それをチェックするプロジェクトの 依存関係を可能にし、実行時に満足 、だけでなく、プロジェクトが他のプロジェクトのためのプラグイン を提供することができ 。そこに卵を具現化し、いくつかの バイナリ形式がありますが、それはプロジェクトを配布するための便利な1 だから は、最も一般的なのは、 形式zipファイル「.egg」です。 パッケージ固有のデータ、プロジェクト全体 メタデータ、Cの拡張、およびPythonの コードを含む フォーマットのサポートのすべて。 Pythonの卵 の
主な利点は以下のとおりです。
彼らは
.eggファイルはPythonのための「ゼロインストール」フォーマットされているPythonのパッケージマネージャ「簡易インストール」のようなツールを有効にします パッケージ。まったくビルドしないか、ステップをインストール が必要とされ、ただPYTHONPATH かのsys.path上に置くと、それらを使用
( Cの拡張 やデータファイルが使用されている場合はインストールされ、ランタイムが必要な場合があります)彼らは、パッケージのメタデータを含むことができ、。彼らは、例えばZopeの(「名前空間のパッケージ」(単に他の パッケージを含むパッケージ)が別々の ディストリビューションに分割することを可能にする。、ねじれた彼らは
に依存する他の卵など、 ピーク。*パッケージとして配布することができます通常のパッケージ とは異なり、常に別の卵になります。これは常に同じ親ディレクトリ の下に置く必要があります。これは は今、巨大な一枚岩のパッケージの別々の コンポーネントとして配布される 何ができます。)
彼らは、アプリケーションやライブラリは、ライブラリの必要な バージョンを指定することができ、あなたが 例えばできるように、インポートを実行する前に を必要とする(Twisted-Internet> = 2.0) twisted.internet
彼らは 拡張可能なアプリケーションの拡張やプラグインを配布し、(例えば0のよう プラグインの卵を使用していますTracの、として のフレームワークのための偉大な形式です。 ランは の卵の位置を特定し、アドバタイズされたエントリ ポイント(Eclipseの 「拡張ポイント」コンセプトに似ています)を見つけるための単純なAPIを提供するためです。
Javaの「jar」形式の利点と同様に、標準化された 形式を使用することによってもたらされる他の利点もあります。
-Adam
.eggファイルは、基本的には、Pythonアプリケーションをデプロイするための良い方法です。 Javaの.jarファイルのように考えることができます。
詳細情報here。
卵はPythonアプリケーションを配布するのに非常に良い方法です。すべての依存関係とその他のものをインストールする、プラットフォームに依存しない.debファイルと考えてください。利点は、エンドユーザーにとって使いやすいことです。欠点は、あなたのアプリケーションを.eggファイルとしてパッケージ化するのが面倒かもしれないということです。
また、.eggsに加えて、別のインストール方法を提供する必要があります。卵を使うのが好きでない人もいれば、ソフトウェアをインストールするというアイデアが好きではないからです。これらは通常、システム管理者のタイプです。
パッケージのsysetemを持つオペレーティングシステムで最も簡単なパッケージ形式であるため、アプリケーションの配布やtarballの配布はやめてください。
単純なPythonプログラムでは、おそらく卵を使う必要はありません。生の.pyファイルを配布するだけで十分です。それはGNU/Linux用のソースファイルの配布に似ています。さまざまなOSの "packagers"(py2exeやpy2appなど)を使用して、異なるオペレーティングシステム用の.exe、.dmg、またはその他のファイルを作成することもできます。
さらに複雑なプログラム。 Djangoは、必要なさまざまなモジュールと依存関係のためにかなりの量の卵を必要とします。
1個の卵は、それ自体が適切な放出源よりも優れていません。良い部分は依存関係処理です。 debianやrpmパッケージのように、あなたは他の卵に依存していると言うことができ、自動的に(pypi.python.orgを介して)インストールされます。
第2のコメント:卵のフォーマットそのものはバイナリのパッケージ形式です。 Pythonコードだけで構成されている通常のPythonパッケージは、 "ソースリリース"として最もよく配布されます。したがって、 "python setup.py sdist"は.tar.gzという結果になります。これらは、ピピにアップロードされると、一般に「卵」と呼ばれます。
バイナリエッグが必要な場所:Cコード拡張をバンドルするとき。いくつかのバイナリの卵(32ビットのunix one、windows oneなど)が必要になります。
- 1. Python eggファイルのポイントは何ですか?
- 2. Python 3を使用する利点/利点は何ですか?
- 3. Pythonでのconcurrent.futuresとmultiprocessingの利点は何ですか?
- 4. .cファイルをインクルードする利点は何ですか?
- 5. 専用のユーザーとしてサービスを実行する利点は何ですか
- 6. Roslyn - コンパイラをサービスとして使用する利点は何ですか
- 7. HQLをhbmファイルに書き込む利点は何ですか?
- 8. スレッドモジュールの上でPythonでEventletモジュールを使用する利点は何ですか?
- 9. アグリゲータープロジェクトと親プロジェクトを分割する利点は何ですか?
- 10. HbaseとHiveを統合する利点は何ですか
- 11. Pythonの関数で関数を定義する利点は何ですか?
- 12. IE5ボックスモデルと比べてW3Cボックスモデルの利点は何ですか?
- 13. ServletRequestWrapperの利点は何ですか?
- 14. git lfsの利点は何ですか?
- 15. WPFツールバーの利点は何ですか?
- 16. pimcoreの利点は何ですか?
- 17. マルチコアの利点は何ですか?
- 18. "ラムダ式"の利点は何ですか?
- 19. Javascriptモジュールパターンの利点は何ですか?
- 20. 使用して、インターフェイスの利点は何ですか
- 21. nHibernateのICriteriaとICriterionの違いと利点は何ですか?
- 22. Socketを介してTcpClientを直接使用する利点は何ですか?
- 23. UnityContainerの利点は何ですか?Activator.CreateInstanceを介して解決しますか?
- 24. メソッドシグネチャでジェネリックを使用する利点は何ですか?
- 25. C#でインターフェイスを使用する利点は何ですか?
- 26. サプライヤをJavaで使用する利点は何ですか?
- 27. pgbouncerでトランザクションプーリングを使用する利点は何ですか?
- 28. TextBox上でRichTextBoxを使用する利点は何ですか?
- 29. WebアプリケーションでEJBを使用する利点は何ですか?
- 30. Python eggを修正するには?
しかし、依存するPythonパッケージにバイナリの卵がPyPiにアップロードされていない場合はどうなりますか? – Mitar