error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools" / Failed building wheel for package
#Почему pip собирает пакет
Если для вашей версии Python и платформы нет готового бинарного колеса (wheel) на PyPI, pip скачивает исходный код и компилирует C/C++ расширения. Для этого на Windows нужен компилятор Microsoft C++ (MSVC). Ошибка означает, что его нет. Но чаще всего собирать ничего не нужно: достаточно обновить pip, выбрать версию Python, для которой есть колёса (обычно на один-два релиза старше самой новой), или взять готовое колесо.
#Типичные причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет колеса для вашей версии PythonPython слишком новый. | Сборка из исходников. | Используйте Python на 1–2 релиза старше или более старую версию пакета. |
| Устаревший pipНе знает современные теги. | Собирает вместо скачивания. | Обновите pip. |
| Нет Build ToolsMSVC не установлен. | Microsoft Visual C++ 14.0 required. | Установите Build Tools. |
| 32-битный PythonКолёса только для 64-бит. | Нет колеса. | Установите 64-битный Python. |
| Не хватает библиотекСторонние заголовки. | Ошибка компиляции. | Используйте conda или подготовленные колёса. |
| Антивирус блокируетКомпиляция. | Случайные сбои. | Исключение для каталога сборки. |
#Порядок
- Обновите pip, setuptools и wheelВ Windows откройте «Пуск» → «Терминал» или PowerShell, активируйте среду своего проекта (если используется). Выполните
py -m pip --version, затемpy -m pip install --upgrade pip setuptools wheel. Здесьpy— установленный диспетчер Python в Windows; если он отсутствует, используйте путь к томуpython.exe, который выполняет проект. Обновление иногда помогает получить готовый пакет, но не заменяет компилятор, если исходная сборка обязательна. - Проверьте версию Python: для новых пакетов колёса выходят с задержкойВ том же терминале выполните
py --version,py -m pip --versionиpy -c "import platform; print(platform.machine())". Сверьте версию, разрядность и архитектуру с разделом «Requires Python» и файлами пакета наpypi.org/project/имя_пакета/. Если версия Python слишком новая или старая, сначала создайте отдельное виртуальное окружение на поддерживаемой версии, не удаляя действующую среду проекта. - Установите с флагом --only-binary :all:, чтобы pip не пытался собиратьЧтобы проверить, есть ли готовый пакет для вашей версии Python, в активной среде выполните
py -m pip install --only-binary=:all: имя_пакета(замените имя). Ключ запрещает компиляцию. Если видитеNo matching distribution found, готового совместимого колеса, возможно, нет в выбранном источнике; это не доказательство, что пакет совсем отсутствует. Удалите--only-binaryтолько после выяснения причин и оценки требований сборки. - Попробуйте более старую версию пакета, где есть колесоОткройте страницу выпусков пакета на PyPI и проверьте, какие версии поддерживают вашу версию Python и архитектуру. Если предыдущий поддерживаемый выпуск действительно имеет готовое колесо, установите точную версию командой
py -m pip install "имя_пакета==X.Y.Z", подставив установленное по документации число версии. Учтите зависимости проекта и требования безопасности; не откатывайтесь на уязвимую версию наугад. - Используйте окружение conda/mambaЕсли пакет недоступен на PyPI в готовом виде, проверьте, публикуется ли он в conda-forge. Этот способ альтернативен pip, а не последовательный дополнительный шаг. В терминале установленного Miniforge создайте отдельную среду:
conda create -n testpkg python=3.12, затемconda activate testpkgиconda install -c conda-forge имя_пакета(версию Python и пакет выберите по совместимости). Проверьте импорт в этой среде; не смешивайте среды без необходимости. - Если сборка необходима, установите Build Tools и компонент «РазработкаЕсли ошибка явно требует MSVC, а готового колеса нет, откройте официальный сайт Visual Studio → «Загрузки» → «Средства для сборки Visual Studio», скачайте Build Tools. В установщике отметьте рабочую нагрузку «Разработка классических приложений на C++» (Desktop development with C++), включая MSVC и Windows SDK. Для установки понадобятся права администратора и свободное место. Избегайте случайных сайтов с отдельным
cl.exe. - Выберите способ в командной строке или терминалеЕсли предыдущие действия не помогли, прочитайте назначение каждого варианта ниже. Не выполняйте их все подряд: выбирайте только соответствующий вашей ситуации.
- Читайте ошибку компиляции: иногда не хватает стороннего заголовка, а неЕсли в журнале остаётся ошибка сборки, прокрутите вывод выше строки
Failed building wheelи найдите первую конкретную ошибку:fatal error C1083означает отсутствующий заголовочный файл,link.exe— проблемы линковщика,unsupported Python version— несовместимую версию. Сохраните название пакета, версию Python, команду, первые строки ошибки и обратитесь к документации пакета. Установка MSVC не исправит все ошибки сборки.
#Виртуальные окружения
Создавайте отдельное окружение для проекта: python -m venv .venv и .venv\Scripts\activate. Так вы избежите конфликтов версий и сможете выбрать подходящую версию Python для зависимостей. Проверьте requirements.txt: пакеты с жёсткой фиксацией старых версий могут не иметь колёс для вашей версии Python.