Python 언어를 활용하다 보면 Jupyter Lab 혹은 Jupyter Notebook을 많이 사용한다.
하지만, 가끔 아나콘다에서 가상 환경을 생성하여 이를 Kernel로 활용하는 것이 제대로 동작하지 않는 경우가 있다. 다시 말해서, 분명히 해당 가상 환경에서 어떤 패키지를 설치했음에도 불구하고, Import Error가 뜨는 경우이다. 

일단 첫번째로, 아나콘다 프롬프트에서 

conda activate [가상환경]

으로 사용하고자 하는 가상 환경에 진입한다. 그 이후에, 해당 가상 환경에 설치된 패키지들에 대한 정보를 확인할 수 있는 

 

conda list

를 통해서 확인해본다. 

 

이제, Jupyter Lab 혹은 Jupyter Notebook에서 설치하였지만, 제대로 설치가 되어 있지 않은 패키지를 import 해서 버전을 확인하면 분명 conda list에서 볼 수 있었던 패키지 버전 정보와는 다른 패키지 버전이 설치되어 있는 것을 확인했었다. 

처음에는 conda install 혹은 아나콘다 자체에 문제가 있는 것이라고 생각하여 아나콘다를 최신 버전으로 업데이트 했지만, 문제는 해결되지 않았다. 

 

 

결론적으로는 

이런 경우에는 기본 환경인 Base의 버전인지 확인해보자!

 

아마도 Jupyter에서 print() 함수를 통해서 출력하여 볼 수 있는 버전은 Base의 버전과 동일할 것이다. (마찬가지로 Base에 install 되어 있지 않은 경우에는 해당 패키지가 없다는 Import Error가 나타날 것이다.) 

 

이 문제의 원인은 아마도, Jupyter에 커널을 추가하는 과정에서 문제가 일어났다고 볼 수 있다. 
(아직까지 왜 이런 일이 발생하는 지에 대해서는 원인을 알지 못했다.) 

 

하지만, 그럼에도 불구하고, 이를 해결하는 방법은 

jupyer kernelspec list

 

명령어를 통해서, 각 가상 환경의 jupyer kernel이 어디에 존재하고 있는지 확인할 수 있다. 
해당 디렉토리에 들어가면 kernel.json 파일이 있다. 여기에서 "argv"라는 key에 해당하는 value는 List로 되어 있고, 가장 첫번째 원소가 파이썬 실행파일의 위치를 나타내고 있다. 이것의 디렉토리를 base의 python.exe가 아닌, 실제 가상 환경의 python.exe 파일을 가리키도록 설정해주면 된다. 

 

즉, 윈도우의 경우 

"C:\\Users\\(사용자명)\\anaconda\\python.exe"  로 되어 있는 부분을,

 

"C:\\Users\\(사용자명)\\anaconda\\envs\\(가상 환경 이름)\\python.exe"

으로 변경해준 뒤, 다시 jupyter lab 혹은 jupyter notebook을 켜고, 해당 커널로 설정한 뒤에 버전을 확인해보면, 우리가 원하는 가상 환경의 패키지가 제대로 불러와 지는 것을 확인할 수 있다. 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기