본문 바로가기
더밸류노트
IT / 소프트웨어

'내부 또는 외부 명령이 아닙니다' 오류와 엉뚱한 버전 실행 — where로 PATH 직접 확인

명령 프롬프트의 '내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다' 오류와 다른 버전이 실행되는 문제를 where 명령으로 추적했습니다. python 실행 파일 4개가 걸린 PATH 순서, py -0으로 버전 고르기, PATH 60개 항목까지 화면과 함께 정리했습니다.

3분 읽기
목차05
  1. 오류 메시지 그대로 보기
  2. where — 어떤 파일이 실행되는지 찾기
  3. 버전이 여러 개라면 py 런처로 고르기
  4. PATH가 얼마나 긴가
  5. 오류별로 할 일

명령 프롬프트에서 뭔가를 입력했는데 "…은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 가 뜨는 경우가 있다. 반대로 명령은 실행되는데 내가 생각한 것과 다른 버전이 실행되는 경우도 있다. 둘 다 원인은 같다. 윈도우가 프로그램을 찾는 경로 목록(PATH)이다. 이 PC에서 직접 확인해 보니 python 하나에 실행 파일이 4개나 걸려 있었다.

오류 메시지 그대로 보기

없는 명령을 일부러 쳐 봤다.

nothingcmd

nothingcmd 입력 결과 '내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다'. 아래 where python 결과 4줄, python --version은 Python 3.14.0, py -0 목록에 3.14 *, 3.12, 3.10

  1. "'nothingcmd'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다."

이 메시지는 명령 프롬프트가 그 이름의 프로그램을 어디에서도 찾지 못했다는 뜻이다. 프로그램이 정말 없을 수도 있다. 설치는 돼 있는데 찾는 경로(PATH)에 그 폴더가 없을 수도 있다. 그리고 의외로 흔한 원인이 명령 이름 오타다. 앞글자 하나만 빠져도(findstr → dstr) 똑같은 메시지가 뜬다.

where — 어떤 파일이 실행되는지 찾기

명령 프롬프트가 어느 파일을 실행하는지는 where 로 확인한다. 마이크로소프트 문서(where)에 따르면 where 는 기본적으로 현재 폴더와 PATH 환경 변수의 경로를 검색한다.

where python
  1. 이 PC에서는 결과가 4줄이었다.
    • C:\Python314\python.exe
    • 사용자 폴더 아래 ...\Programs\Python\Python312\python.exe
    • 사용자 폴더 아래 ...\Programs\Python\Python310\python.exe
    • 사용자 폴더 아래 ...\Microsoft\WindowsApps\python.exe

여러 개가 나오면 맨 위 줄이 실제로 실행되는 파일이다. PATH에 먼저 적힌 폴더부터 찾기 때문이다. 확인 삼아 버전을 물어봤다.

python --version
  1. Python 3.14.0 — 맨 위 줄 C:\Python314 의 파이썬이 실행됐다.

마지막 줄의 WindowsApps\python.exe 는 실제 파이썬이 아니라 윈도우가 넣어 둔 바로 가기 성격의 파일(앱 실행 별칭)이다. PATH에서 뒤쪽에 있어서 이 PC에서는 실행되지 않았다. 만약 이게 맨 위에 온다면 python 을 입력했을 때 엉뚱하게 스토어 쪽으로 연결될 수 있다.

버전이 여러 개라면 py 런처로 고르기

파이썬을 여러 버전 깔아 두었다면 파이썬 공식 문서(윈도우에서 파이썬 사용하기)에 나오는 py 런처가 편하다. py -0 은 설치된 버전 목록을 보여 준다(문서에 따르면 예전 런처와의 호환을 위해 유지되는 명령이다).

py -0
  1. -V:3.14 * / -V:3.12 / -V:3.10 — 세 버전이 잡혔고, * 가 붙은 3.14가 기본값이다. 특정 버전으로 실행하고 싶으면 py -3.12 처럼 버전을 지정하면 된다. PATH 순서와 상관없이 원하는 버전을 고를 수 있다.

PATH가 얼마나 긴가

PATH에 몇 개의 경로가 들어 있는지도 세어 봤다.

where git
where node
powershell -NoProfile -Command "($env:Path -split ';').Count"

where git은 2줄(Git\cmd, Git\mingw64\bin), where node는 1줄, PATH 항목 수 60

  • git 도 2개가 걸렸다(Git\cmd\git.exe 가 먼저). 설치 프로그램이 경로를 두 군데 넣은 경우다.
  • node 는 1개.
  • PATH 항목은 60개였다. 프로그램을 설치할 때마다 경로가 하나씩 붙다 보니 이렇게 길어진다. 길수록 "같은 이름의 다른 파일이 먼저 걸리는" 일이 생기기 쉽다.

오류별로 할 일

증상원인확인
"내부 또는 외부 명령…이 아닙니다"오타, 미설치, PATH에 폴더 없음철자 확인 → where 이름 으로 찾기
실행은 되는데 버전이 다름같은 이름 파일이 여러 개, 앞쪽이 실행됨where 이름 결과의 맨 윗줄 확인
파이썬 버전이 여러 개PATH 순서에 따라 바뀜py -0 으로 목록, py -3.12 처럼 지정

설치 직후 명령이 인식되지 않는다면, 열려 있던 명령 프롬프트 창을 닫고 새로 연 창에서 다시 해 보는 것도 방법이다. 이미 열린 창은 설치 전의 PATH를 들고 있기 때문이다.

2026년 10월 18일, 윈도우 11 Home 23H2에서 확인. 캡처의 사용자 폴더 이름은 흐리게 가렸다.

참고 자료

  1. where - Microsoft Learn
  2. 윈도우에서 파이썬 사용하기 - Python 문서

같은 카테고리의 글

04