Локальный архив с исходным кодом всё равно может требовать доступа к сети. Прежде чем pip сможет его установить, ему могут понадобиться backend сборки и вспомогательные пакеты, чтобы собрать wheel.

Найдите сбой в этой последовательности: получение целевого архива, установка требований сборки, выполнение backend, затем установка полученного пакета. Хуки backend могут запрашивать дополнительные требования сборки; они отделены от зависимостей пакета времени выполнения.

Определите артефакт, который pip всё ещё требует

На шаге «Installing build dependencies» запишите пакет и URL, на которых произошёл сбой. Проверьте действующий индекс, маршрут через прокси, контекст учётной записи и доверие для этого запроса, используя документированные настройки установленной версии pip. Прежняя успешная загрузка не доказывает доступ к каждому хосту или окружению каждого помощника. Публичные требования сборки могут использовать HTTP-кандидата из списка HTTP-прокси, если этот маршрут разрешён; сохраняйте требуемый индекс и политику доверия. Исторические рецепты загрузки с setup.py могут использовать другие подпроцессы.

Если на другой машине установка проходит успешно, сначала сравните выбранные артефакты. Её версия Python или платформа может иметь совместимый заранее собранный wheel, тогда как на этой машине выбран дистрибутив с исходным кодом, и поэтому нужны инструменты сборки.

Предоставляйте окружение сборки осознанно

--no-build-isolation переносит на вас ответственность за необходимые зависимости сборки. Он не исправляет проверку подлинности прокси или доверие к сертификату. Локально установленный backend может скрывать отсутствующее или несовместимое требование.

Для осознанно офлайн-сборки подготовьте целевой артефакт, требования сборки и необходимые инструменты для проекта и платформы через утверждённый процесс. Каталог, содержащий только архив исходного кода, неполон. Сохраните неудавшееся требование и этап в отчёте, чтобы можно было исправить либо маршрут, либо подготовленный набор артефактов.

Похожие статьи