Подтвердить что ты не робот

Нужны ли проекты python MANIFEST.in, и что должно быть в нем?

"Руководство по распределению Python" (было на python-distribute.org, но эта регистрация истекло) говорит мне включать doc/txt файлы и файлы .py исключены в файле MANIFEST.in

документация sourcedist говорит мне, что только sdist использует MANIFEST.in и включает только указанный вами файл и включает .py файлы. Он также говорит мне использовать: python setup.py sdist --manifest-only для генерации MANIFEST, но python говорит мне, что этого не существует

Я ценю это из разных версий python, и система распространения находится в но я предполагаю, что я использую python 3 и setuptools (новый, который включает в себя распространение, но теперь называется setuptools, а не старые настройки setuptools, которые были устарели для распространения инструментов только для того, чтобы быть возвращенными в дистрибутив и распространение, переименованное в setuptools.....)

и я следую за "стандартной" структурой папок и setup.py файлом,

  • Нужен ли мне MANIFEST.in?
  • Что должно быть в нем?
  • Когда все эти различные системы и методы упаковываются в один простой процесс?
4b9b3361

Ответ 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/