Сообщение «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 и библиотеки будут отсутствовать даже после «успешной» установки.
Шаг 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
Шаг 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.