1. ホーム
  2. python

[解決済み] PythonプロジェクトにMANIFEST.inは必要ですか、そして何を入れるべきですか?

2022-05-11 05:46:42

質問

Python Distribute" ガイド (python-distribute.org にありましたが、登録が失効しています) によると、次のように記述するようにとのことです。 doc/txt ファイルと .py ファイルは MANIFEST.in ファイル

ソースコード・ドキュメント を使うのは sdist だけだと教えてくれました。 MANIFEST.in を使い、指定したファイルのみをインクルードし、インクルードするために .py ファイルをインクルードします。また、使用するように指示されます。 python setup.py sdist --manifest-only を生成するために MANIFEST を生成しますが、pythonはこれが存在しないことを私に告げます。

私は、これらが異なるバージョンのpythonからで、配布システムが完全に混乱していることを理解しています。 しかし、私がpython 3を使用していると仮定すると、 (distribute を含む新しいものですが、現在は setuptools と呼ばれています。古い setuptools は distribute tools のために非推奨となり、distribute に戻されて distribute が setuptools に改名されました......)。

で、私は「標準」のフォルダ構造に従い setuptools ファイルを作成します。

  1. は必要ですか? setup.py ?
  2. 何が入っているべきですか?
  3. これらの異なるパッケージ・システムや手法は、いつになったら単一のシンプルなプロセスになるのでしょうか?

どのように解決するのですか?

Re: "私はMANIFEST.inが必要ですか?

いいえ、必要ありません。 MANIFEST.in . 両方です。 MANIFEST.indistutils はソース で指定されたすべてのファイルが含まれます。 setuptools - モジュール、パッケージの Python ファイルを含みます。 setup.pyREADME.txt . もし,これだけで良いのなら を使う必要はありません。 test/test*.py .

インクルードするデフォルトのファイルを操作(追加・削除)したい場合は MANIFEST.in .

Re: 何が入っているべきでしょうか?

手順は簡単です。

  1. を確認し、あなたの MANIFEST.in に、( setup.py 引数で) プログラムを実行するために重要だと思われるすべてのファイル (モジュール、パッケージ、スクリプト...) をインクルードします。

  2. 追加するファイルや除外するファイルがあるかどうか、明確にします。どちらも必要ない場合は setup .

  3. もし MANIFEST.in が必要な場合は、それを作成します。通常、そこに MANIFEST.in ファイルを作成します。 tests*/*.py を使用しない場合は README.rst , README.txt ファイル、そして必要であればテストスイート用のデータファイルがあります。

例えば

docs

テストするには include README.rst include COPYING.txt の下に作成された tarball を調べます。 python setup.py sdist .

いつになったらこれらの異なるパッケージシステムは ...

現在と 2 年前の状況を比較すると、状況はずっと良くなっています - 。 dist/ がいいんじゃないでしょうか。事実を無視することができます。 setuptools は少し壊れており、低レベルのベースとなる distutils として setuptools は、これらのことを隠すことに気を配る。

EDIT : 私が使っている最後の数プロジェクト setuptools の3行でディストリビューションパッケージをビルドするために pbr で、残りは setup.py であり setup.cfg . を気にする必要はありません。 requirements.txt といった奇妙なことを気にする必要はありません。たとえ、このパッケージがもう少しドキュメントに値するとしても。参照 http://docs.openstack.org/developer/pbr/