nvcc не является внутренней или внешней командой: причины и решение

Сообщение «nvcc не является внутренней или внешней командой, исполняемой программой или пакетным файлом» появляется в командной строке Windows, когда система не может найти исполняемый файл nvcc.exe — компилятор CUDA из пакета NVIDIA CUDA Toolkit. Чаще всего причина одна из двух: либо сам toolkit не установлен, либо путь к папке bin с компилятором не добавлен в переменную окружения PATH.

Ошибка типична для разработчиков, которые ставят PyTorch, TensorFlow или собирают проекты с CUDA-ядрами и затем проверяют установку командой nvcc --version. Ниже разберём, как проверить наличие toolkit, правильно прописать пути и убедиться, что компилятор вызывается из любой папки.

Почему Windows не находит nvcc

Командная строка ищет исполняемые файлы только в текущей папке и в каталогах, перечисленных в переменной PATH. Если nvcc.exe лежит в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vXX.X\bin, а этой записи в PATH нет, интерпретатор честно сообщает, что команда ему неизвестна.

Вторая возможная причина — toolkit установлен частично или установка прервалась, и файл nvcc.exe физически отсутствует на диске. Третий вариант: вы установили только драйвер NVIDIA, который не включает компилятор CUDA. Драйвер и CUDA Toolkit — разные вещи: драйвер позволяет запускать готовые CUDA-приложения, а компиляция кода требует именно toolkit.

  • 🔍 Проверьте, существует ли папка C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA на диске.
  • 📁 Откройте внутри неё подпапку версии (например, v12.4) и каталог bin — там должен лежать nvcc.exe.
  • ⚙️ Проверьте, есть ли путь к этой папке в системной переменной PATH.
  • 🔄 Убедитесь, что терминал был перезапущен после изменения переменных окружения.

Шаг 1. Проверяем, установлен ли CUDA Toolkit

Прежде чем править переменные окружения, убедитесь, что toolkit вообще присутствует в системе. Откройте «Установка и удаление программ» и поищите записи вида NVIDIA CUDA Toolkit с указанием версии. Если их нет — toolkit нужно установить с официального сайта NVIDIA Developer, выбрав версию, совместимую с вашим фреймворком.

Быстрая проверка через проводник: перейдите в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA. Внутри должна быть папка с номером версии, а в ней — каталоги bin, lib, include. Если папки нет, дальнейшие шаги с PATH бессмысленны — сначала устанавливаем toolkit.

⚠️ Внимание: устанавливайте CUDA Toolkit только с официального сайта NVIDIA. Сторонние сборки могут содержать неполный набор компонентов, из-за чего nvcc и библиотеки будут отсутствовать даже после «успешной» установки.
📊 Что вы обнаружили при проверке?
CUDA Toolkit установлен, но nvcc не находится
CUDA Toolkit вообще не установлен
nvcc.exe есть, но PATH не настроен
Ошибка появилась после обновления CUDA

Шаг 2. Добавляем путь к nvcc в переменную PATH

Если nvcc.exe на диске есть, но команда не распознаётся, добавьте путь к нему в PATH вручную. Нажмите Win + R, введите sysdm.cpl и на вкладке «Дополнительно» откройте «Переменные среды». В разделе «Системные переменные» найдите Path, нажмите «Изменить» и добавьте две записи (номер версии подставьте свой):

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\libnvvp

После сохранения обязательно закройте и заново откройте командную строку, PowerShell или IDE — уже запущенные процессы не подхватывают обновлённые переменные окружения. Это самая частая причина ситуации «всё прописал, а ошибка осталась».

☑️ Настройка PATH для nvcc

Выполнено: 0 / 5

Шаг 3. Быстрая проверка без правки PATH

Чтобы убедиться, что проблема именно в PATH, а не в битом toolkit, вызовите компилятор по полному пути. В командной строке выполните:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\bin\nvcc.exe" --version

Если команда вывела версию компилятора — toolkit в порядке, нужно только исправить PATH. Если появилась ошибка о повреждённом файле или файл не найден, переустановите CUDA Toolkit. Такой тест занимает секунды и сразу разделяет два сценария проблемы.

Особые случаи: Anaconda, несколько версий CUDA и IDE

В средах Anaconda и Miniconda ситуация хитрее: пакет cudatoolkit из conda не всегда включает nvcc, а команда выполняется в активированном окружении со своим набором переменных. Проверяйте nvcc именно в том окружении, где планируете компиляцию.

Если на машине стоят несколько версий CUDA, порядок записей в PATH определяет, какая из них вызывается по умолчанию — Windows берёт первую найденную. Переместите нужную версию выше в списке. В Visual Studio и других IDE дополнительно проверьте, что проект ссылается на ту же версию toolkit, которая прописана в PATH.

СитуацияВероятная причинаЧто делать
nvcc не найден сразу после установкиТерминал не перезапущенЗакрыть и открыть cmd заново
nvcc.exe отсутствует на дискеУстановлен только драйверУстановить CUDA Toolkit
Полный путь работает, короткая команда — нетПуть не добавлен в PATHПрописать папку bin в Path
Вызывается не та версия CUDAНесколько toolkit в PATHПоднять нужную запись выше
Ошибка только в conda-окруженииПакет без компилятораПроверить состав пакета, поставить toolkit
⚠️ Внимание: не копируйте nvcc.exe отдельно от остального toolkit в другую папку. Компилятор зависит от библиотек и заголовочных файлов своего дистрибутива, и без них он не запустится или выдаст ошибки при сборке.

Как убедиться, что проблема решена

Откройте новое окно командной строки и выполните nvcc --version. В ответ должна появиться информация о версии компилятора и release-сборке CUDA. Дополнительно полезно проверить nvidia-smi — эта утилита показывает версию CUDA, поддерживаемую драйвером, и подтверждает, что GPU виден системе.

Финальная проверка — компиляция тестового файла. Создайте простой файл с расширением .cu и соберите его командой nvcc test.cu -o test.exe. Успешная сборка означает, что и компилятор, и окружение настроены корректно.

Почему nvidia-smi работает, а nvcc — нет

Утилита nvidia-smi входит в состав драйвера NVIDIA и устанавливается вместе с ним, поэтому она доступна сразу. Компилятор nvcc — часть отдельного пакета CUDA Toolkit, который драйвер не включает. Работающая nvidia-smi лишь подтверждает наличие драйвера и GPU, но ничего не говорит об установленном toolkit.

Частые вопросы

Нужно ли перезагружать компьютер после изменения PATH?

Полная перезагрузка обычно не требуется — достаточно закрыть и заново открыть командную строку, PowerShell или IDE. Перезагрузка помогает лишь в редких случаях, когда переменные подхватываются системными службами.

Можно ли использовать nvcc без установки полного CUDA Toolkit?

Нет, nvcc распространяется только в составе CUDA Toolkit. Отдельной официальной установки компилятора не существует, а копирование файла вручную приводит к ошибкам из-за отсутствия зависимостей.

Почему после обновления CUDA ошибка появилась снова?

Новая версия устанавливается в отдельную папку с другим номером, и старый путь в PATH перестаёт быть актуальным. Обновите запись в переменной Path, указав каталог bin новой версии.

Как узнать, какая версия CUDA нужна для PyTorch или TensorFlow?

Сверьтесь с официальной документацией конкретной версии фреймворка — там указаны поддерживаемые версии CUDA. Установка несовместимой версии toolkit приведёт к ошибкам уже на этапе запуска, а не компиляции.

Ошибка возникает в Visual Studio, но в cmd всё работает. Что делать?

Перезапустите Visual Studio после изменения PATH — IDE кэширует переменные окружения при запуске. Также проверьте настройки проекта: там может быть явно указан путь к старой версии CUDA.