Код: Выделить всё
python3 -m build --wheel '--config-setting=--build-option=-v' '--config-setting=--build-option=egg_info' '--config-setting=--build-option=-bpost20240119000000'
Код: Выделить всё
build/__main__.py
Я надеюсь, что другие расскажут, как они использовали эти параметры egg_info. модулем сборки для достижения желаемого эффекта. Или, возможно, я могу предпринять дополнительные шаги, чтобы выявить основную причину.
Я ценю любые отзывы и предложения. MTIA.
вывод вызова сборки:
Код: Выделить всё
$python3 -m build --wheel '--config-setting=--build-option=-v' '--config-setting=--build-option=egg_info' '--config-setting=--build-option=-bpost20240119000000' |& tee build-failure.log
* Creating venv isolated environment...
* Installing packages in isolated environment... (setuptools>=42, wheel)
* Getting build dependencies for wheel...
* Installing packages in isolated environment... (setuptools>=50.3.2, wheel, wheel>=0.35.1)
* Building wheel...
/tmp/build-env-9qdhq0jy/lib/python3.10/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsWarning: `install_requires` overwritten in `pyproject.toml` (dependencies)
corresp(dist, value, root_dir)
/tmp/build-env-9qdhq0jy/lib/python3.10/site-packages/setuptools/sandbox.py:13: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
import pkg_resources
usage: _in_process.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: _in_process.py --help [cmd1 cmd2 ...]
or: _in_process.py --help-commands
or: _in_process.py cmd --help
error: option --dist-dir not recognized
ERROR Backend subprocess exited when trying to invoke build_wheel
Python3 ./ Вызов setup.py egg_info -bpost20240119000000 bdist_wheel не вызывает проблем, как и ожидалось dist/ioif_core-0.8.4.post20240119000000-py3-none-any.whl создан.
---- 1-е обновление ----
добавление --no-isolation в параметры сборки -> колесо генерируется, помещается в dist/, но опция -b не используется (файл колеса: dist/ioif_core-0.8.4-py3-none-any.whl). Итак, мне нужно разобраться с новыми вопросами: что не так с использованием изолированного виртуального окружения по сравнению с его отсутствием; что происходит с egg_info -b
---- 2-е обновление ----
Это использование инструментов настройки 60.2.0.
Является ли философия упаковки PEP517 теперь такой, что метаданные должны быть установлены соответствующим образом, а не зависеть от устаревших команд, таких как egg_info -b ? Значит, серверная часть должна ожидать, что метаданные проекта будут управлять такими аспектами, как управление версиями? Таким образом, хотя инструменты настройки по-прежнему документируют использование egg_info -b для пометки ежедневных сборок и т. д., без интерфейса сборки, передающего эти параметры (я вижу, что _buid_with_temp_data() в build_meta.py не передает параметры, не являющиеся глобальными параметрами) для процесса сборки), жизнеспособным кажется только обновление метаданных.
В этом духе я изменил (пока) файл setup.py для извлечения (до вызова установки) значение версии из pyproject.toml или setup.cfg и, если оно установлено, с помощью переменной env, определяющей строку формата, генерирует результирующее значение версии, передавая в качестве именованного аргумента в настройку). Это прекрасно работает, но только если при вызове сборки python3 -m используется --no-isolation. У меня есть оператор печати, показывающий правильное значение версии в обоих сценариях, но он не используется, если я не использую --no-isolation. Мне нравится концепция изоляции env в PEP517, я бы предпочел использовать ее, но в работе CI/CD она не имеет особой ценности, поэтому -n выглядит как экономия времени. Есть ли вообще опция сборки, позволяющая не обновлять временную среду сборки, чтобы можно было провести анализ того, что там есть после сборки?
Подробнее здесь: https://stackoverflow.com/questions/778 ... on-m-build