Python ModuleNotFoundError 해결 방법 — 원인부터 완벽 해결까지
pip install을 분명히 했는데 ModuleNotFoundError가 계속 나와서 한참을 헤맸습니다. 알고 보니 가상환경이 활성화가 안 된 상태에서 설치했던 게 문제였습니다.Python을 배우다 보면 누구나 한 번은 마주치는 오류가 있습니다. 바로 ModuleNotFoundError: No module named 'XXX' 입니다. vscode에서 코드를 실행하는 순간 이 빨간 글씨가 등장하면 당황스럽지만, 사실 이 오류는 원인이 명확하고 해결 방법도 분명합니다. 이 글에서는 ModuleNotFoundError가 발생하는 다섯 가지 원인과 상황별 해결법을 단계별로 정리해 드리겠습니다.
ModuleNotFoundError란 무엇인가 — 택배 주소를 찾을 수 없는 상황
오류의 정체
ModuleNotFoundError는 Python이 import 문으로 모듈을 불러오려 했지만 해당 모듈을 찾지 못했을 때 발생합니다. 아래처럼 생긴 오류 메시지가 바로 그것입니다.
ModuleNotFoundError: No module named 'pandas'
택배에 비유하면 이렇습니다. import pandas는 "판다스라는 이름의 택배를 가져와줘"라는 요청입니다. 그런데 창고(Python 환경)에 그 택배가 없으면 "해당 주소로 배달된 물건이 없습니다"라는 메시지가 뜨는 것입니다. 해결책은 단순합니다. 창고에 물건을 채워 넣거나(설치), 올바른 창고를 열거나(환경 확인), 주소를 정확히 쓰거나(경로 설정) 하면 됩니다.
오류가 발생하는 다섯 가지 상황
- 원인 1 — 라이브러리를 아예 설치하지 않은 경우
- 원인 2 — 가상환경이 활성화되지 않은 상태에서 설치한 경우
- 원인 3 — VS Code의 Python 인터프리터가 잘못 설정된 경우
- 원인 4 — 모듈 이름을 오타로 잘못 입력한 경우
- 원인 5 — 직접 만든 모듈의 경로가 Python에 등록되지 않은 경우
원인 1 — 라이브러리가 설치되지 않은 경우
확인 방법
가장 먼저 해당 라이브러리가 실제로 설치되어 있는지 확인합니다.
pip list
목록에 해당 라이브러리가 없다면 설치가 안 된 것입니다.
해결 방법 — pip install
pip install pandas
여러 라이브러리를 한 번에 설치하려면 아래처럼 입력합니다.
pip install pandas numpy matplotlib requests
설치 후 다시 코드를 실행해서 오류가 사라지는지 확인합니다.
💡 패키지 이름과 import 이름이 다른 경우: 설치할 때 이름과 import할 때 이름이 다른 라이브러리가 있습니다. 아래가 대표적인 예입니다.
| pip install 이름 | import 이름 |
|---|---|
pillow |
from PIL import Image |
python-dotenv |
from dotenv import load_dotenv |
scikit-learn |
import sklearn |
beautifulsoup4 |
from bs4 import BeautifulSoup |
opencv-python |
import cv2 |
원인 2 — 가상환경 문제 (가장 흔한 원인)
왜 이런 일이 생기는가
이것이 ModuleNotFoundError의 가장 흔한 원인입니다. 가상환경 밖에서 pip install을 했거나, 가상환경 A에 설치했는데 가상환경 B가 활성화된 상태에서 코드를 실행하는 경우입니다.
마치 회사 창고에 물건을 넣어뒀는데, 집 창고를 열어서 "왜 없어?"라고 하는 상황과 같습니다. 물건은 분명히 있지만 엉뚱한 창고를 열고 있는 것입니다.
확인 방법
터미널에서 현재 활성화된 Python이 어디 있는지 확인합니다.
# Windows
where python
# macOS / Linux
which python3
경로가 venv/Scripts/python.exe (Windows) 또는 venv/bin/python (macOS) 형태여야 가상환경이 활성화된 것입니다.
해결 방법 — 가상환경 활성화 후 재설치
# 가상환경 활성화
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
# 활성화 확인 — 프롬프트 앞에 (venv) 표시 확인 후 설치
pip install pandas
원인 3 — VS Code 인터프리터 설정 문제
vscode에서만 오류가 나는 경우
터미널에서 직접 실행하면 잘 되는데 vscode의 실행 버튼(▶)을 누르면 ModuleNotFoundError가 발생하는 경우가 있습니다. 이는 vscode가 가상환경의 Python이 아닌 시스템 Python을 사용하도록 설정되어 있기 때문입니다.
해결 방법 — 인터프리터 변경
Ctrl + Shift + P(macOS는Cmd + Shift + P)를 누릅니다.Python: Select Interpreter를 입력하고 선택합니다.- 목록에서
./venv/Scripts/python.exe또는./venv/bin/python항목을 선택합니다.
선택 후 vscode 하단 상태표시줄에 선택한 Python 경로가 표시되면 완료입니다. 이후 실행 버튼을 눌러도 가상환경의 Python이 사용됩니다.
pip과 python이 서로 다른 환경을 가리키는 경우
# python과 pip이 같은 환경인지 확인
python -m pip install pandas
pip install 대신 python -m pip install을 사용하면 현재 실행 중인 Python과 동일한 환경에 라이브러리가 설치됩니다. 환경 불일치 문제를 가장 확실하게 방지하는 방법입니다.
원인 4 — 오타 및 모듈 이름 혼동
대소문자 구분과 철자 오류
Python의 import는 대소문자와 철자를 정확하게 구분합니다. 아래는 흔히 발생하는 오타 예시입니다.
# 잘못된 방법
import Pandas # 대문자 P
import panda # s 누락
import numppy # p 중복
# 올바른 방법
import pandas
import numpy
현재 파일 이름이 라이브러리 이름과 같은 경우
이 경우는 원인을 찾기 특히 어렵습니다. 예를 들어 본인이 만든 파일 이름이 requests.py라면, import requests를 실행할 때 외부 라이브러리 대신 본인의 파일을 불러오려다 충돌이 발생합니다.
# 피해야 할 파일 이름들
requests.py # requests 라이브러리와 충돌
pandas.py # pandas와 충돌
numpy.py # numpy와 충돌
os.py # 표준 라이브러리와 충돌
파일 이름을 my_requests.py, data_handler.py 같이 라이브러리 이름과 겹치지 않게 지정하는 것을 권장합니다.
원인 5 — 직접 만든 모듈 경로 문제
같은 프로젝트 안의 파일을 import할 때 오류 발생
직접 만든 Python 파일을 다른 파일에서 import할 때도 ModuleNotFoundError가 발생할 수 있습니다.
프로젝트/
├── main.py
└── utils/
└── helper.py
# main.py에서 아래처럼 import하면 오류 발생 가능
import helper # ModuleNotFoundError
해결 방법 1 — 상대 경로 import 사용
# main.py
from utils.helper import my_function
해결 방법 2 — __init__.py 파일 추가
utils 폴더 안에 빈 __init__.py 파일을 만들면 Python이 해당 폴더를 패키지로 인식합니다.
프로젝트/
├── main.py
└── utils/
├── __init__.py ← 이 파일 추가
└── helper.py
# 이제 아래처럼 import 가능
from utils.helper import my_function
해결 방법 3 — sys.path에 경로 추가
임시로 경로를 추가해야 할 경우 사용합니다.
import sys
from pathlib import Path
# 프로젝트 루트를 Python 경로에 추가
sys.path.insert(0, str(Path(__file__).parent.parent))
from utils.helper import my_function
빠른 진단 체크리스트
오류가 발생했을 때 순서대로 확인하면 대부분 해결됩니다.
# 1단계 — 현재 Python 경로 확인
where python # Windows
which python3 # macOS / Linux
# 2단계 — 가상환경 활성화 여부 확인 (프롬프트 앞 (venv) 표시 확인)
# 3단계 — 설치 여부 확인
pip list | grep pandas # Windows PowerShell
pip list | grep pandas # macOS / Linux
# 4단계 — 동일 환경에 설치
python -m pip install 패키지명
# 5단계 — VS Code 인터프리터 확인
# Ctrl+Shift+P → Python: Select Interpreter
마무리
✅ ModuleNotFoundError 해결 체크리스트
pip list로 설치 여부 먼저 확인- 가상환경 활성화 여부 확인 — 프롬프트 앞
(venv)표시 체크 python -m pip install로 설치 — pip과 python이 같은 환경을 가리키도록 보장- VS Code 인터프리터 를 가상환경 경로로 재설정
- 파일 이름 이 라이브러리 이름과 겹치지 않는지 확인
- 직접 만든 모듈 은
__init__.py+ 상대 경로 import로 해결 - pip 이름과 import 이름 이 다른 라이브러리는 별도 확인
ModuleNotFoundError는 무서운 오류가 아닙니다. 원인을 알면 대부분 1~2분 안에 해결됩니다. 위 체크리스트를 북마크해 두고 오류가 날 때마다 순서대로 확인해 보십시오.
댓글
댓글 쓰기