#python #setuptools #python-wheel
Вопрос:
Я использую Python 3.8 в conda и использую сборку для создания пакетов. Хотя в моей среде Conda у меня уже есть setuptools 51.0 и wheel 0.36, при каждом запуске python -m build --wheel
я вижу следующие сообщения:
Found existing installation: setuptools 49.2.1
Uninstalling setuptools-49.2.1:
Successfully uninstalled setuptools-49.2.1
Collecting wheel
Using cached wheel-0.37.0-py2.py3-none-any.whl (35 kB)
Collecting setuptools>=51
Using cached setuptools-58.3.0-py3-none-any.whl (946 kB)
Installing collected packages: wheel, setuptools
Successfully installed setuptools-58.3.0 wheel-0.37.0
Здесь существующие пакеты даже не соответствуют тому, что у меня есть в Conda, и я не думаю, что мне нужны новейшие пакеты. Кто-нибудь может объяснить, почему это происходит?
Комментарии:
1.
build
использует новые чистые виртуальные среды для каждой сборки. Как вы думаете, почему вам не нужна новейшаяsetuptools
версия?2. Никаких конкретных причин, просто чувствовал, что существующие пакеты в порядке. Так нормально ли, что build каждый раз устанавливает новейшие пакеты в новый venv? Просто казалось, что это немного повторяется каждый раз.
3. Да, это нормально.
build
делает это, чтобы попытаться обеспечить максимально чистую сборку.
Ответ №1:
обратитесь к этому разделу https://pypa-build.readthedocs.io/en/latest/#python—m-build-optional-arguments
По умолчанию сборка будет собирать пакет в изолированной среде, но это поведение можно отключить
--no-isolation
.
поэтому вам может потребоваться добавить --no-isolation
флаг для принудительного использования виртуальной среды вашего проекта следующим образом:
python -m build --wheel --no-isolation
Комментарии:
1. Спасибо! Именно то, что я искал.