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. Значения флагов приведены в документации установки.