3

プログラムをリリースするときは、通常、setup.py を作成して pypi に配置します。pip でインストールできるので、いつでも簡単に他のユーザーと共有できます。それは私にとって、そして明らかに多くの人にとってうまくいきます。

exe、deb、またはrmpを簡単なシステム管理者にすることの利点がわかります。

でも、卵を使う意味がわからない。そこから何が得られるか教えてもらえますか?

また、卵にはマイナス面があると読んだことがありますが、その記事はもう見つかりません。このパッケージ形式を使用すると、どのような問題が発生する可能性があるか説明していただけますか?

この質問を見たことに注意してください。しかし、答えは setup.py を含む単純なディレクトリにも当てはまります。より単純な形式に対する卵の利点はわかりません。

4

2 に答える 2

3

卵は特定のアーキテクチャと Python のバージョンに関連付けられており、Python 3.3 までは、卵に C 拡張機能が含まれている場合、内部の Unicode 表現のサイズ (UCS2 と UCS4) も含まれます。

残念ながら、後者の違いは卵のメタデータには取り込まれていません。卵のファイル名には、アーキテクチャと python バージョン (major.minor、つまり 2.4 または 3.1) が含まれていますが、Unicode バイト サイズは省略されています。

このため、卵はあまり持ち運びできません。一方、ディストリビューションは (うまくいけば) プラットフォームに依存しませ.tgzん。.zipあなたのインストールツールは、それが何でeasy_installあれ、pythonパッケージの配布物を卵にコンパイルする方法を知っているので、通常、ファイルを完全に配布することは避けます.pipbuildout.egg

唯一の例外は Windows で、ほとんどの人は C 拡張機能をコンパイルするためのツールチェーンを欠いています。Python の Windows ディストリビューションはデフォルトで UCS2 に設定されているため、自動化されたツールによるインストールを容易にするために、C 拡張子を持つパッケージの Windows ビルドを配布しても安全です。.egg

スクリプトを使用してディストリビューションを作成する場合setup.py、PyPI にアップロードするソースのみのパッケージを作成するのは簡単です。詳細については、 Python Packaging User Guideをお勧めします。

于 2012-09-05T09:41:15.077 に答える
1

*.egg は、easy_install または pip を介してパッケージをインストールした後に使用される純粋な展開形式です。

ファイルを .egg として PyPI にアップロードしても意味がありません。これをやっている人は、自分が何をしているのかわかりません。

適切な PyPI リリースは、.tar.gz アーカイブ、.zip アーカイブ、または .exe ファイル (Windows バイナリなどの場合) ですが、決して *.egg ファイルではありません。

于 2012-09-05T09:24:48.313 に答える