Ответ 1
Re: "Мне нужен MANIFEST.in?
Нет, вам не нужно использовать MANIFEST.in
. Оба, distutils
и setuptools
включены в источник
дистрибутив все файлы, упомянутые в setup.py
- модули, пакетные файлы python,
README.txt
и test/test*.py
. Если это все, что вы хотите иметь в дистрибутиве, вы делаете
не нужно использовать MANIFEST.in
.
Если вы хотите манипулировать (добавлять или удалять) файлы по умолчанию для включения, вы должны использовать MANIFEST.in
.
Re: Что должно быть в нем?
Процедура проста:
-
Убедитесь, что в
setup.py
вы включаете (с помощью аргументовsetup
) все файлы, которые вы считаете важными для запуска программы (модули, пакеты, скрипты...) -
Уточните, если есть некоторые файлы для добавления или некоторые файлы для исключения. Если ни один из них не нужен, то нет необходимости использовать
MANIFEST.in
. -
Если требуется
MANIFEST.in
, создайте его. Обычно вы добавляете файлыtests*/*.py
,README.rst
, если вы не используете файлыREADME.txt
,docs
и, возможно, некоторые файлы данных для набора тестов, если это необходимо.
Например:
include README.rst
include COPYING.txt
Чтобы протестировать его, запустите python setup.py sdist
и изучите архив, созданный в dist/
.
Когда все эти различные системы пакетов...
Сравнивая ситуацию сегодня и 2 года назад - ситуация намного лучше - setuptools
- это путь. Вы можете игнорировать тот факт, что distutils
немного сломан и является базой низкого уровня для setuptools
, поскольку setuptools
должен позаботиться о том, чтобы скрыть эти вещи от вас.
EDIT. Последние несколько проектов я использую pbr
для создания дистрибутивных пакетов с тремя строками setup.py
и остальные находятся в setup.cfg
и requirements.txt
. Не нужно заботиться о MANIFEST.in
и других странных вещах. Несмотря на то, что пакет заслуживает более подробной документации. См. http://docs.openstack.org/developer/pbr/