「Python配布」ガイド(python-distribute.orgにありましたが、登録は失効しました)には、doc/txt
ファイルを含めるように指示され、.py
ファイルはMANIFEST.in
ファイルから除外されます
sourcedist documentation は、sdistがMANIFEST.in
のみを使用し、指定したファイルと.py
ファイルのみを含めることを示しています。 python setup.py sdist --manifest-only
を使用してMANIFEST
を生成しますが、pythonはこれが存在しないことを示します
これらはpythonの異なるバージョンのものであり、配布システムは完全に混乱していますが、python 3およびsetuptools
(を含む新しいものを使用していると仮定すると配布されますが、現在はsetuptoolsと呼ばれます。配布ツールは、配布に戻され、setuptoolsに名前が変更されて配布されるために廃止された古いsetuptoolsではありません。
そして、私は「標準」フォルダ構造とsetup.py
ファイルに従っています、
MANIFEST.in
が必要ですか?いいえ、MANIFEST.in
を使用する必要はありません。 distutils
とsetuptools
の両方は、ソース配布パッケージにsetup.py
-モジュール、パッケージpythonファイル、README.txt
およびtest/test*.py
に記載されているすべてのファイルを含めています。配布パッケージにこれだけが必要な場合は、MANIFEST.in
を使用する必要はありません。
含めるデフォルトのファイルを操作(追加または削除)する場合は、MANIFEST.in
を使用する必要があります。
手順は簡単です。
setup.py
には、プログラムの実行に重要だと思うすべてのファイル(モジュール、パッケージ、スクリプトなど)を(setup
引数によって)含めてください。
追加するファイルまたは除外するファイルがある場合は、明確にします。どちらも必要ない場合は、MANIFEST.in
を使用する必要はありません。
MANIFEST.in
が必要な場合は、作成してください。通常、そこにtests*/*.py
ファイル、README.rst
、docs
ファイルを使用しない場合はREADME.txt
、必要に応じてテストスイート用のデータファイルを追加します。
例えば:
include README.rst
include COPYING.txt
テストするには、python setup.py sdist
を実行し、dist/
の下に作成されたtarballを調べます。
今日と2年前の状況を比較する-状況ははるかに良くなっています-setuptools
が道です。事実は無視できます。distutils
は少し壊れており、setuptools
の低レベルのベースであり、setuptools
はこれらのことを隠します。
編集:最後のいくつかのプロジェクトは、pbr
を使用して、3行のsetup.py
と残りがsetup.cfg
とrequirements.txt
にある配布パッケージを構築します。 MANIFEST.in
やその他の奇妙なものを気にする必要はありません。パッケージにはもう少しドキュメントが必要ですが。 http://docs.openstack.org/developer/pbr/ を参照してください
古い質問、新しい答え:
いいえ、MANIFEST.in
は必要ありません。ただし、setuptools
を取得して(通常)意味することを行うには、setuptools_scm
を使用する必要があります。これは、2つの主要な場所でMANIFEST.in
の役割を果たします。
sdist
コマンドの実行時にすべての関連ファイルがパッケージ化されるようにします(すべての関連ファイルは「ソース管理下のすべてのファイル」として定義されます)include_package_data
を使用してbuild
またはbdist_wheel
の一部としてパッケージデータを含める場合。 (再び:ソース管理下のファイル)MANIFEST.in
の歴史的な理解は、ソース管理システムがない場合、「ソースファイル」と「作業ディレクトリにあるファイル」を区別するための他のメカニズムが必要です。ただし、プロジェクトはソース管理下にあるので(右??)、MANIFEST.in
は必要ありません。 この記事の詳細 。