Python eggファイルの作成方法


91

Pythonのeggファイルについて質問があります。

パッケージごとに整理された多くのPythonコードがあり、eggファイルを作成しようとしています。手順に従っていますが、非常に一般的です。

それによると、setup.pyファイルが必要なようです。

  1. setup.pyファイルに何を入れる必要があるか、またそれをどこに置くべきか教えてください。
  2. 卵ファイルを取得するには、setup.pyを作成して「setup.py bdist_egg」を起動するだけで十分だと思います。確認お願いいたします?
  3. .pycファイルのみをeggファイルに含めることはできますか?
  4. .eggファイルを使用すると、解凍することなくコードを開始できますかjava -jar <jar file>

代わりに卵の代わりに何を使うべきですか?ここでは卵についての私の質問ですstackoverflow.com/questions/14902732/...
グリーン

@YauhenYakimovich:そのリンクはパーキングされたスパムドメインになりました。たぶん価値が使用する編集packaging.python.org/en/latest/wheel_eggを
Chris Adams

回答:


74

間違ったドキュメントを読んでいます。これが必要です:https : //setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode

  1. setup.pyの作成については、こちらの Pythonの標準ライブラリドキュメントのdistutilsドキュメントで説明しています。主な違い(pythonの卵の場合)はimport setupからsetuptoolsではなく、からdistutilsです。

  2. うん。それは正しいはずです。

  3. 私はそうは思いません。pycファイルは、バージョンとプラットフォームに依存する場合があります。あなたは卵を開き(それらは単にzipファイルであるべきです)、.pyファイルを残して.pycファイルを削除することができるかもしれませんが、それは推奨されません。

  4. よく分かりません。それは「開発モード」かもしれません。または、「py2exe」または「py2app」モードを探していますか?


51
+1:.pycファイルを含めないでください。彼らは完全に混乱しています。私たちは誤ってWindowsの.pycファイルをLinuxボックスにコピーし、これまでで最もわかりにくいエラートレースバックメッセージがありました。ファイル名が元のWindowsファイル名だからです。本番サーバーでこれらのWindowsファイル名を確認するのは恐ろしいことでした。
S.Lott、2008年

pyinstallerを使用してください
Nickpick

30

#4の場合、アプリのjarファイルからjavaを起動するのに最も近いのは、Python 2.6の新機能、実行可能なzipファイルとディレクトリです。

python myapp.zip

myapp.zipは、__main__.py実行するスクリプトファイルとして実行されるファイルを含むzip です。パッケージの依存関係もファイルに含めることができます。

__main__.py
mypackage/__init__.py
mypackage/someliblibfile.py

卵を実行することもできますが、呪文はそれほど良くありません。

# Bourn Shell and derivatives (Linux/OSX/Unix)
PYTHONPATH=myapp.egg python -m myapp
rem Windows 
set PYTHONPATH=myapp.egg
python -m myapp

これにより、myapp.eggがPythonパスに配置され、-m引数を使用してモジュールが実行されます。myapp.eggは次のようになります。

myapp/__init__.py
myapp/somelibfile.py

そして、Pythonが実行されます__init__.py__file__=='__main__'コマンドラインで使用する場合は、アプリで確認する必要があります)。

卵ファイルは単なるzipファイルなので__main__.py、zipツールを使用して卵に追加し、Python 2.6で実行可能にしてpython myapp.egg、PYTHONPATH環境変数が設定されている上記の呪文の代わりに実行することができます。

実行可能zipファイルの詳細については、シバンで直接実行可能にする方法など、Michael Foordの件名に関するブログ投稿を参照してください


また一つは、仮想環境を使用することができますguide.python-distribute.org/installation.html#upgrading
Yauhen Yakimovich

10

今は、卵の代わりにPythonホイールを使って配布するべきだと思います。

WheelsはPythonディストリビューションの新しい標準であり、卵を置き換えることを目的としています。サポートは、pip> = 1.4およびsetuptools> = 0.8で提供されます。


2
私の知る限り、ホイールをインポートすることはできません。ときどき、スクリプトを卵と一緒に配置して、移植性を高めたいだけです。
Gillespie
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.