96

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

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

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

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

3 に答える 3

77

間違ったドキュメントを読んでいます。これが必要です: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」モードをお探しですか?

于 2010-01-08T10:54:42.167 に答える
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 のブログ投稿を参照してください。

于 2011-10-28T14:55:58.233 に答える
11

配布には卵の代わりにPython ホイールを使用する必要があると思います。

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

于 2015-02-05T05:49:17.423 に答える