Вы должны думать, что MANIFEST.in
является аддитивным, а не вычитающим. У него есть некоторые значения по умолчанию , перечисленные здесь , и все остальное, кроме того, что вы явно указали, игнорируется.
(Использование tests
в качестве примера в вашем комментарии не идеально, поскольку все файлы, соответствующие test/test*.py
включены по умолчанию.)
Учитывая следующий пример:
$ tree .
.
├── bar
│ └── __init__.py
├── foo
├── my_package
│ ├── __init__.py
│ ├── bar
│ │ └── __init__.py
│ └── foo
└── setup.py
$ cat setup.py
from setuptools import setup, find_packages
setup(
name="my-package",
version='1.0.0',
packages=find_packages(),
)
Запуск python setup.py sdist
приведет к включению следующего, поскольку все они являются модулями:
bar/
bar/__init__.py
my_package/
my_package/__init__.py
my_package/bar/
my_package/bar/__init__.py
setup.py
И исключение следующего, потому что они не являются модулями:
foo/
my_package/foo/
Аналогично, все каталоги .git
или действительно любой каталог без __init__.py
будут исключены по умолчанию.