본문 바로가기

Trial & Error

파이썬 입문 시에 많이 보는 에러(3) - import 오류

이번 글에서는 분명히 라이브러리를 설치했음에도 불구하고 Python에서 해당 라이브러리가 제대로 인식되지 않아 발생하는 오류에 대해 다루어보겠습니다.


1. 왜 이런 오류가 발생할까?

이미 pip install을 통해 라이브러리를 설치했다고 생각했는데 Python이 해당 라이브러리를 찾지 못하는 이유는 크게 다음과 같이 나눌 수 있습니다.

  1. 가상환경 문제:
    Python 개발 시에는 venv나 conda와 같은 가상환경을 자주 사용합니다. 만약 특정 가상환경에서 라이브러리를 설치했다면, 다른 환경에서 실행하는 Python 인터프리터는 해당 라이브러리를 인식하지 못합니다.
    즉, pip install을 실행한 환경과 실제 코드를 실행하는 환경(해당 Python 인터프리터)이 일치하지 않으면 라이브러리가 인식되지 않습니다.
  2. 파이썬 인터프리터 경로 문제:
    로컬 머신에는 여러 버전의 Python이 설치되어 있거나, IDE(예: VSCode, PyCharm)에서 설정한 Python 인터프리터 경로가 실제 설치 경로와 다를 수 있습니다. 예를 들어, python3.9 인터프리터로 코드를 실행하면서 라이브러리는 python3.10 환경에 설치되어 있으면 모듈을 찾을 수 없습니다.
  3. pip와 python 경로 불일치:
    터미널에서 pip를 실행했을 때 설치되는 라이브러리가 python 명령어가 가리키는 Python 환경과 다를 수 있습니다. 예를 들어, pip가 글로벌 Python에 라이브러리를 설치했으나 실제로는 가상환경의 Python 인터프리터로 코드를 실행하는 경우가 생길 수 있습니다.

2. 발생 예시

(1) ModuleNotFoundError: No module named 'requests'

import requests 

라이브러리 'requests'를 사용하려고 함

만약 requests 라이브러리를 pip install requests 명령으로 설치했다고 생각했는데, 실행 시 다음과 같이 오류가 발생한다면:

>>>ModuleNotFoundError: No module named 'requests'

이는 현재 파이썬 인터프리터가 해당 라이브러리를 인식할 수 없는 환경에서 동작하고 있음을 의미합니다.

3. 해결 방법

(1) 현재 사용 중인 파이썬 인터프리터 확인하기

  • VSCode 사용 시:
    화면 오른쪽 하단에 Python 인터프리터 정보가 표시됩니다. 해당 인터프리터를 클릭하거나 Ctrl+Shift+P를 눌러 커맨트 팔레트를 열고 Python: selectInterpreter를 찾습니다.

Ctrl+Shift+P를 눌러 커맨트 팔레트를 열고 Python: selectInterpreter를 찾는다
3.12.7('env':venv)라고 쓰여있는 곳을 클릭한다

  • 여기서 실제 라이브러리를 설치했던 가상환경 혹은 Python 버전을 선택해주세요.

\

(2) pip와 python의 경로를 맞추기

  • 터미널에서 다음 명령을 통해 python과 pip가 동일한 경로를 가리키는지 확인할 수 있습니다. 윈도우에서는 다음과 같이 경로를 확인할 수 있습니다.
where python

where pip

(3) 가상환경 재점

  • 가상환경을 만들었다면 해당 가상환경을 활성화한 상태에서 pip install을 진행해야 합니다.
  • 윈도우에서는 가상환경을 활성화하기 위해 다음과 같은 방법을 사용합니다. (가상환경 폴더가 있는 곳에서 터미널에 다음과 같이 입력->여기서는 가상환경 폴더 이름이 env라고 가정했을 때)

source env/Scripts/activate

이렇게 하고 나면 사용자 명 전으로 (env)라고 가상환경의 이름이 나오는 것을 볼 수 있다.

pip install requests
  • 이렇게 하면 현재 활성화된 가상환경에 라이브러리가 설치되고, 동일한 가상환경 내에서 Python을 실행하면 정상적으로 모듈을 찾을 수 있게 됩니다.

결론

pip install을 했음에도 라이브러리가 인식되지 않는 오류는 주로 파이썬 인터프리터 경로나 가상환경 설정 문제에서 비롯됩니다. 다음과 같이 점검해보세요.

  • 현재 사용하는 파이썬 인터프리터가 올바른가?
  • pip와 python 명령이 동일한 환경을 가리키고 있는가?
  • 가상환경을 사용 중이라면, 해당 환경을 활성화한 상태로 라이브러리를 설치했는가?

이러한 사항들을 점검하고 수정하면 ModuleNotFoundError나 라이브러리 인식 문제를 해결할 수 있습니다. 다음 글에서는 또 다른 입문자들이 자주 겪는 오류 사례를 다루어보도록 하겠습니다.