01 - Page Assets Layers
커스텀 소개 매인페이지
개발/Python int iron

Error: externally-managed-environment

Venv 가상환경 속 ModuleNotFoundError: No module named 'fastapi' 에러

ModuleNotFoundError: No module named '모듈' 에러는 아마 Python을 하는 분들이라면 어떻게 해결하는지 다 알 것이다. 그냥 pip로 해당 모듈을 install하기만 하면 된다는 것을 추가로 한다면 연계된 모듈 이름 검색정도일 것이다.

FastAPI를 사용하기 위해 공식 홈페이지에 있는대로 pip install fastapi를 진행하고 실행을 진행하였더니

ModuleNotFoundError: No module named 'fastapi'

pip install을 통해 설치했을 fastapi모듈이 없다고 나온다.

 

원인을 찾아서

우선 오류 내용이 모듈이 없다는 것이니 pip list를 통해 없는지 확인을 해봤다.

pip list

fastapi가 잘 설치되어 있지만 오류가 발생된다.

구글링을 진행해보니 가상환경이 잘못 설정되어 설치는 가상환경 실행은 메인PC의 Python으로 실행되고 있을 가능성도 있다고 한다.

which python & pip

그래서 확인을 해보니 가상환경을 잘 쓰고 있다.

그러다가 지인한텐 한탄을 했더니 가상환경 말고 메인 PC에 설치 안되서 그런거 아니냐고 하여 일단 메인PC에 설치를 진행해 봤다.

메인 PC에서의 pip install진행

원인을 찾은거 같다.

 

기본 pip문제

기본이 되는 pip가 error: externally-managed-environment오류가 발생하니 가상환경의 pip가 제대로 돌아가지 않고 있던 상황이었다.

이를 해결하기 위해 구글링을 해보니

sudo rm /usr/lib/python<버전>/EXTERNALLY-MANAGED

등 EXTERNALLY-MANAGED을 지우라는 말이 많았다. 다른 방법이 없나 찾아보다가 오류 내용이 짤렸지만 뒤에 'by passing --break-system-packages']구문을 보고 검색을 해봤다.

python3 -m pip config set global.break-system-packages true

 

pip 설정에 break-system-packages 설정을 true로 변경해주면 된다고 해서 변경하고 혹시몰라 pip 업그레이드까지 진행하여봤다.

pip upgrade
fastapi 서비스 실행

매우 잘 실행되는 것을 볼 수 있다.