В руководстве "Python Distribute" (было на 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
? - Что в нем должно быть?
- Когда все эти различные системы пакетов и методы будут объединены в один простой процесс?
источник
sdist
(означает: распространение исходного кода ). Если вы считаете, чтоbdist
иbdist_wheel
являются двоичными и предназначены только для установки на вашем пути к Python, это имеет смысл. (Куда будут идти эти немодульные файлы и каталоги? В/usr/local/lib/python2.7/dist-packages/
? Разумеется, нет.) Но об этом стоит упомянуть, поскольку сложно видеть, что архив создан, а в них нет файлов.package_data
иdata_files
рекомендаций, которые выходят за рамки, я продолжу.package_data
перечисляет файл, который устанавливается вместе с вашим пакетом,dist-packages/yourpackage
который был бы пропущен, потому что у него нет имени * .py.data_files
перечисляет файлы, которые устанавливаются вне вашего пакета. Каждая запись указывает целевой путь с префиксом,sys.prefix
если он относительный, или создается напрямую (если разрешения разрешены), если он начинается с/
.pbr
его тоже - плохая идея.Старый вопрос, новый ответ:
Нет, не надо
MANIFEST.in
. Однако, чтобыsetuptools
сделать то, что вы (обычно) имеете в виду, вам нужно использоватьsetuptools_scm
, который играет рольMANIFEST.in
в двух ключевых местах:sdist
команды (где все соответствующие файлы определены как "все файлы под контролем источника")include_package_data
для включения данных пакета как частиbuild
илиbdist_wheel
. (опять же: файлы под контролем версий)Историческое понимание
MANIFEST.in
таково: когда у вас нет системы контроля версий, вам нужен какой-то другой механизм, чтобы различать «исходные файлы» и «файлы, которые случайно находятся в вашем рабочем каталоге». Однако ваш проект находится под контролем источника (верно ??), поэтому в нем нет необходимостиMANIFEST.in
. Больше информации в этой статье .источник