Python3/Python3 lang

[Python3] 파이썬 패키지 설치 완료 후에 import 에러 발생할 경우 + could not be resolved Pylance

Razelo 2021. 8. 9. 11:04

파이썬에서 원하는 패키지를 pip install을 통해 정상적으로 설치하였고, 성공적으로 설치하였다는

메시지도 확인했는데도 import 가 되지 않는 경우가 있다. 혹시 잘못됬나 싶어서 패키지를 지워도 보고, 다시 import문을 적어봐도 이런 경우에는 소용이 없다. 

보통 pip를 해도 안되는 경우는 크게 pip버전이 안맞아서 pip를 upgrade해줘야 하는 경우, 

아예 패키지명이 잘못된 경우 등이 있는데, 이 경우는 성공적으로 설치했음에도 import가 되지 않는 경우를 소개한다. 

 

위 사진처럼 이미 잘 설치되어있음에도 from import 구문이 작동하지 않는 것이다. 

바로 아래 처럼 말이다. 

 

heapdict라이브러리를 사용하기 위해 from절에 적어주었는데 노란 밑줄이 있는 것을 볼 수 있다. 

살펴보면 다음과 같은 문구가 뜨게 되는데, 즉슨 지금 heapdict를 사용할 수 없다는 뜻이다. 

 

왜 설치했는데 사용하지 못할까? 

 

정답은 현재 사용중인 파이썬 인터프리터가 무엇이냐에 달려있다. (사실 인터프리터가 뭐냐라고 표현하기 보다는 패키지가 설치되는 경로가 달라서 라고 말하는게 맞다. 다만 그 이유가 지금 사용하는 인터프리터가 다름으로 인해 경로도 다름으로 인함이다. )

 

visual studio code를 쓰시는 분이면 알겠지만, 왼쪽 하단에 보면 현재 본인이 사용중인 인터프리터가 뜰 것이다. 

나의 경우 현재 인터프리터가 conda로 되어있다. (예전에 세팅해준적이 있어서)

 

그런데 여기서 문제는 pip install을 통해 패키지를 다운받으면 conda 인터프리터가 있는 곳이 아닌

AppData/ ~ /python39/python.exe와 관련된 경로에 패키지가 다운된다는 것이다. (python.exe 하위 디렉토리에 설치된다는 뜻이 아니라 관련 상위 디렉토리에 설치된다는 뜻이다. ) 

 

하지만 conda의 경우 miniconda/envs/api/python.exe의 경로를 가지고 있는데, pip install로 설치되는 디렉토리와 아예 다르다. 

python 64bit기본(python.org에서 다운 받는 python3를 의미) 의 경우에 AppData/Local에 다운되기 마련이다. 

 

이러한 점때문에 conda를 쓰다가 무심코 pip를 했을 경우 경로가 달라 인식할 수 없게 되는 것이다. 

 

vscode의 하단에 있는 인터프리터 정보(사진에서 파란색 창에 있는 글씨) 를 클릭하면 Select Interpreter 정보가 나온다.

 

그럼 이제 여기서 AppData에 있는 python.exe 인터프리터로 선택하면 

경고가 사라지는 것을 확인할 수 있다. 

 

conda에 설치하는 방법이 있었던 것 같은데, 다시 또 찾아봐야겠다. 

그렇게 하면 굳이 이렇게 인터프리터까지 바꿔가며 하지 않아도 된다. 

conda install과 pip install이 또 같은줄만 알았는데, 다르다고 한다.

 

밑에 블로그에 좋은 설명이 나와있다.

 

읽어보면 좋을 듯 

 

https://daewonyoon.tistory.com/359

 

[Anaconda] conda install 과 pip install 은 똑같은 걸까?

일전에 아나콘다에서의 패키지 설치라는 포스팅을 하였다. 아나콘다에서는 되도록 pip install 보다는 conda install 을 사용하고, 부득이하게 pip install 을 사용해야 하는 조건, pip 의 사용했을 때 이후

daewonyoon.tistory.com

 

반응형