문제 상황

pip install package-name을 실행했는데 패키지 설치가 실패하는 경우가 있습니다. 패키지와 환경에 따라 오류 메시지는 조금씩 다릅니다.

Python pip install 실패 해결 방법 설명 이미지

대표적인 예시는 다음과 같습니다.

ERROR: Could not find a version that satisfies the requirement package-name
ERROR: No matching distribution found for package-name
ERROR: Failed building wheel for package-name
PermissionError: [Errno 13] Permission denied

중요한 점은 pip install failed가 하나의 원인만 가리키는 오류가 아니라는 것입니다. 패키지 이름이 틀렸을 수도 있고, Python 버전이 맞지 않을 수도 있습니다. 또는 잘못된 Python 환경에 설치하고 있거나, pip가 오래되었거나, OS 빌드 도구가 부족할 수도 있습니다.

원인

대부분의 pip install 실패는 아래 원인 중 하나에 속합니다.

  • 패키지 이름에 오타가 있습니다.
  • 패키지가 현재 Python 버전을 지원하지 않습니다.
  • 실행 중인 Python과 다른 환경의 pip를 사용하고 있습니다.
  • 가상환경이 활성화되지 않았습니다.
  • pip, setuptools, wheel 버전이 오래되었습니다.
  • proxy, firewall, 사내 패키지 저장소 설정 때문에 다운로드가 막혔습니다.
  • 패키지에 native extension이 있어 OS 빌드 도구가 필요합니다.
  • 전역 Python 환경에 설치할 권한이 없습니다.

여러 해결책을 한꺼번에 적용하기 전에, 먼저 어떤 Python과 어떤 pip를 사용 중인지 확인해야 합니다.

빠른 해결

가장 안전한 방법은 pip를 단독으로 실행하지 않고, 실제로 사용할 Python을 통해 pip를 실행하는 것입니다.

Windows

py -m pip --version
py -m pip install --upgrade pip setuptools wheel
py -m pip install package-name

macOS와 Linux

python3 -m pip --version
python3 -m pip install --upgrade pip setuptools wheel
python3 -m pip install package-name

package-name은 실제 설치할 패키지 이름으로 바꿔야 합니다. 예를 들어 requests를 설치하려면 다음처럼 실행합니다.

python -m pip install requests

pip install만 실행하는 것보다 python -m pip install을 사용하는 것이 더 안전합니다. 이 방식은 특정 Python 실행 파일과 pip를 명확하게 연결합니다.

단계별 해결 방법

1. 실행 중인 Python 확인

먼저 현재 터미널에서 어떤 Python이 실행되는지 확인합니다.

python -c "import sys; print(sys.executable)"
python -c "import sys; print(sys.version)"

Windows에서는 Python launcher가 더 명확할 때가 많습니다.

py -0p

여러 Python 버전이 설치되어 있다면, 이 명령으로 설치된 버전과 경로를 확인할 수 있습니다.

2. 실행 중인 pip 확인

다음 명령을 실행합니다.

python -m pip --version

출력된 경로가 현재 프로젝트에서 쓰려는 Python 환경을 가리켜야 합니다. 다른 폴더를 가리킨다면, 패키지를 엉뚱한 환경에 설치하고 있는 것입니다.

예를 들어 프로젝트가 .venv를 사용한다면, 출력 경로에도 보통 .venv가 포함되어야 합니다.

3. 가상환경 활성화

프로젝트에 가상환경이 있다면 패키지를 설치하기 전에 먼저 활성화합니다.

Windows PowerShell:

.\.venv\Scripts\Activate.ps1
python -m pip install package-name

Command Prompt:

.venv\Scripts\activate.bat
python -m pip install package-name

macOS와 Linux:

source .venv/bin/activate
python -m pip install package-name

PowerShell에서 활성화가 막힌다면 실행 정책 때문에 스크립트가 차단된 것일 수 있습니다. 현재 사용자 범위에서 한 번만 다음 명령을 실행합니다.

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

그다음 터미널을 새로 열고 다시 가상환경을 활성화합니다.

4. pip, setuptools, wheel 업그레이드

오래된 packaging 도구 때문에 wheel 빌드가 실패하는 경우가 많습니다.

python -m pip install --upgrade pip setuptools wheel

업그레이드 후 다시 설치합니다.

python -m pip install package-name

5. 패키지 이름 확인

import 이름과 pip 설치 이름이 다른 패키지가 있습니다.

import 이름 pip 패키지 이름
cv2 opencv-python
PIL Pillow
sklearn scikit-learn
yaml PyYAML

No matching distribution found가 나온다면 패키지 공식 문서나 PyPI 페이지에서 정확한 설치 이름을 확인해야 합니다.

6. Python 버전 지원 여부 확인

일부 패키지는 모든 Python 버전을 지원하지 않습니다. 현재 버전을 확인합니다.

python --version

너무 최신 Python을 사용 중이면 아직 해당 패키지의 wheel이 배포되지 않았을 수 있습니다. 반대로 너무 오래된 Python을 사용 중이면 패키지가 지원을 중단했을 수 있습니다.

이 경우 지원되는 Python 버전으로 가상환경을 새로 만드는 것이 좋습니다.

7. 권한 오류 처리

오류 메시지에 PermissionError 또는 Access is denied가 있다면 전역 설치를 강제로 진행하지 않는 것이 좋습니다. 대신 가상환경을 사용합니다.

python -m venv .venv

그다음 가상환경을 활성화하고 그 안에 패키지를 설치합니다. 매번 관리자 권한으로 설치하는 것보다 안전합니다.

해결 확인 방법

설치가 성공했다면 패키지 정보와 import를 모두 확인합니다.

python -m pip show package-name
python -c "import package_name; print('import ok')"

pip show에 쓰는 패키지 이름과 import에 쓰는 모듈 이름이 다를 수 있습니다. 예를 들어 OpenCV는 다음처럼 확인합니다.

python -m pip show opencv-python
python -c "import cv2; print(cv2.__version__)"

마지막으로 앱이 같은 환경에서 실행되는지도 확인합니다.

python -c "import sys; print(sys.executable)"

흔한 실수

  • 한 터미널에서 pip install을 실행하고, 앱은 다른 Python으로 실행합니다.
  • 프로젝트는 .venv를 쓰는데 전역 환경에 패키지를 설치합니다.
  • 블로그나 문서에서 복사한 패키지 이름에 smart quote나 숨은 문자가 섞여 있습니다.
  • Linux에서 첫 해결책으로 sudo pip install을 사용합니다.
  • 마지막 오류 줄만 검색하고, 실제 원인이 적힌 첫 번째 오류 줄을 놓칩니다.
  • JavaScript의 node_modules처럼 Python 패키지 폴더를 직접 지우면 된다고 생각합니다.

관련 글

자주 묻는 질문

이 글은 언제 먼저 적용하면 좋나요?

오류 메시지, 실행한 명령, 사용 중인 OS와 버전을 먼저 기록한 뒤 이 글의 원인별 순서대로 확인하는 것이 좋습니다.

초보자가 가장 먼저 확인할 부분은 무엇인가요?

처음에는 환경 변수, 설치 경로, 권한, 캐시처럼 재현 가능성이 높은 항목부터 확인하세요. 그다음 로그와 설정 파일을 비교하면 원인을 좁히기 쉽습니다.

더 찾아볼 때 어떤 키워드를 쓰면 좋나요?

추가 검색할 때는 “Python pip install 실패 해결 방법” 같은 핵심 문구와 error message, version, Windows, GitHub Pages, Jekyll 같은 실제 환경 키워드를 붙이면 더 정확한 결과를 얻기 쉽습니다.

Leave a comment