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

Sungmin LeeSungmin Lee
3 min read

What is pip?

pip는 Pip Install Packages 의 약자로 간단하게 파이썬으로 작성된 라이브러리들을 관리한다. 패키지와 모듈을 관리하는 역할을 한다. 패키지는 모듈에 필요한 파일을 모아 놓은 것으로 모듈들은 Python 코드들의 라이브러리의 형태로 이루어져 있다.

일반적으로 Python 3.4 이상의 버전을 다운 받으면 일반적으로 pip가 포함되어있다.

C:\User>pip --version

위의 코드는 정상적으로 pip가 설치되어 있다면 pip의 버전을 출력해주는 명령어 코드다. 하지만, python을 3.4 이상의 버전을 다운 받았음에도 불구하고

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

라는 문구가 뜰 때가 있다.

주로 새로운 패키지를 사용하려 할 때 위에 문구를 얻게 되었을 것이다.

C:\User> pip install numpy  #패키지를 다운 받는 예시이다.
'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.

이러한 문제는 pip의 환경 변수 설정이 안되어 있기 때문에 발생하는 에러일 수 있다.

환경변수 설정하기

환경 변수를 설정하기 위해서 “고급 시스템 설정 보기”에 가야 한다. 이에 2가지 방법이 있다.

  1. 제어판 → 시스템 및 보안 → 시스템 → 고급 시스템 설정

  2. Windows 검색 “고급시스템 설정 보기”

이건 고급 시스템 설정 창이다. 여기서 환경 변수 설정을 클릭한다.

<사용자 이름>에 대한 사용자 변수(U)에서 변수명이 Path로 되어있는 행을 택하고 편집 버튼을 누른다.

새로 만들기를 눌러 Python<version name> 파일까지의 경로를 추가해주면 된다.

만약 Python<version name> 파일 안에 Scripts 파일까지의 경로 또한 추가해준다.

(Scripts 파일 안에 pip.exe 파일이 존재한다.)

(만약 Scripts 파일이 없다면 Python을 {제어판 → 프로그램 삭제}를 통해 지우고 다시 설치하는 것을 추천한다.)

제대로 경로 설정이 되었는지 확인하기 위해

C:\User>pip --version

다시 한 번 cmd에 입력해보자. 이때 버전이 정상적으로 출력되면 성공한 것이다.

(만약 위의 과정을 모두 했는데 아직도 “'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.”가 뜬다면 컴퓨터 재시작 후 해보면 될 것이다.

처음부터 잘 깔자!

python 공식 사이트에서 python install 파일을 다운 받으면 python-<버전명>-amd64.exe을 실행하면 다음 화면이 나오는데 밑에 “Add python.exe to PATH”를 선택해주면 위에서 했던 작업이 알아서 이루어져서 환경변수가 추가되어 이런 문제가 생기지 않는다. “Add python.exe to PATH”를 선택하면 PATH에 경로 3개가 생기게 된다.

  • C:\Users\…\Python\Python313\Scripts\

  • C:\Users\…\Python\Python313\

  • C:\Users\…\Python\Launcher\

여담으로 C:\Users\…\Python\Launcher\ 경로는 Launcher 폴더에 있는 py.exe 파일에 접근할 수 있게 해준다. py.exe는 기본 python 버전 실행, 특정 버전 실행, 가상 환경 동작과 같이 다양한 버전의 python이 있을 때, 이를 컨트롤하기 쉽게 해준다. 필요하다면 위의 과정에서 경로를 추가해주면 된다.

무엇이 문제인 것일까?

다음 코드를 다시 보자.

C:\User>pip --version

위의 코드에서 CMD는 pip가 입력되면 환경 변수(Environment Variable)에 있는 경로 중에서 pip.exe를 찾아서 명령을 실행한다. 그러므로 경로를 설정을 안했을 때 왜 오류가 생기고 “'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다.”왜 이런 문구가 뜨는지 이해할 수 있다. 환경변수에 있는 경로 중에는 pip.exe라는 프로그램이 존재하지 않음을 알려주는 문구이다.

환경 변수(Environment Variable)

환경 변수는 운영체제에서 프로그램이 실행될 때 참조할 수 있는 전역 변수이다.

환경 변수에는 2가지 종류가 있다. 이는 시스템 변수(System Variables)와 사용자 변수(User Variables)이다. 두 변수는 몇 가지 차이점이 존재한다.

비교System VariablesUser Variables
적용범위모든 사용자(전역)현재 사용자(로컬)
권한 필요 여부관리자 권한 필요일반 사용자
CMD 창에서 확인echo %PATH%echo %USERPROFILE%

pip와 python과 같이 사용자가 설치하는 프로그램은 사용자 단위의 프로그램으로 사용자 변수(User Variable)에 추가가 된다. 시스템 변수가 사용자 변수보다 더 global한 변수이고 의존성이 더 높기 때문에 사용자가 추가하는 프로그램이 시스템 변수로 들어간다면 여러 사용자가 다른 버전 프로그램 사용시 충돌 문제, 다음 프로그램과의 의존성 충돌 문제, 기존 사용자 변수의 프로그램과의 충돌 문제와 같은 문제가 생길 수도 있어 주의해야 한다.

환경 변수 중에서 PATH는 프로그램 실행 파일이 위치한 경로, 위치를 저장하는 환경 변수이다. CMD에서 실행 파일의 이름을 입력하면 PATH에 등록된 폴더에서 해당 파일을 찾아서 실행하는 구조이다.

0
Subscribe to my newsletter

Read articles from Sungmin Lee directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sungmin Lee
Sungmin Lee