pip обычно выбирает подходящий wheel, а при его отсутствии способен собрать пакет из исходного дистрибутива, тогда как флаги only-binary и no-binary управляют этим выбором. Политика становится явной.

Запретите исходники в развертывании

Значение :all: у only-binary требует готовые wheels, поэтому пакет без совместимого файла завершит установку ошибкой вместо неожиданного запуска компилятора на сервере.

python -m pip install --only-binary=:all: -r requirements.txt

Проверьте сборку из sdist

no-binary для конкретного имени полезен при тестировании исходного релиза, но потребует backend, заголовки системных библиотек и рабочую цепочку компиляции.

Не лечите несовместимость флагом

Если wheel отвергнут из-за тега, prefer-binary не сделает его подходящим, поэтому сначала проверьте платформу, ABI и доступные файлы выбранного выпуска.

Закрепляйте политику бинарных файлов в CI и проверяйте ее на каждой поддерживаемой платформе, поскольку один общий requirements-файл способен видеть разный набор wheels.

Совместимые теги показывает pip debug, а собственные архивы создает pip wheel. Значения флагов приведены в документации установки.