setuptools を使用する setup.py で Python パッケージをパッケージ化する場合:
from setuptools import setup
...
によって作成されたソース配布:
python setup.py sdist
通常どおり、MANIFEST.in で指定されたファイルを含めるだけでなく、Subversion がパッケージ ディレクトリの下でバージョン管理されているものとしてリストするすべてのファイルも無償で含めます。これは非常に迷惑です。パッケージと共に配布されるファイルを明示的に制御することが困難になるだけでなく、「svn チェックアウト」ではなく「svn エクスポート」に従ってパッケージをビルドすると、 .svn メタデータがない場合、setuptools は何を含めるかについて異なる選択を行うため、パッケージはまったく異なる可能性があります。
私の質問: Subversion を使用している場合でも、聞いたことのないバージョン管理を使用している場合でも、「svn export」で作成された裸のツリーを使用している場合でも、「setuptools」がプロジェクトを同じように扱うように、このひどい動作をオフにするにはどうすればよいですか?プロジェクトの最後に作成して、作業ディレクトリ以外の場所にきれいにビルドされるようにしましたか?
私がこれまでに管理した中で最高のものは、醜いモンキー パッチです。
from setuptools.command import sdist
del sdist.finders[:]
しかし、これはジャングルではなく Python であるため、もちろん、サルがまったく関与しない、より優れたソリューションが必要です。どうすれば setuptools を飼いならし、その魔法をオフにして、代わりに MANIFEST.py の目に見える予測可能なルールを見て、賢明に動作させることができますか?