본문 바로가기
Python

[Python] kernel에 설치된 라이브러리 조회 및 버전 확인하기

by 전봇대파괴자 2020. 10. 8.

github 저장소에 README를 작성하다 보면 사용한 라이브러리의 버전들을 확인해야 할 일이 생깁니다. 

똑같은 라이브러린데 버전 좀 다르다고 문제가 생기겠어? 단순하게 생각할 수도 있겠지만 그게 그렇지가 않습니다.

 

당장 초등학교 때 뚱땡이 컴퓨터에 있던 Window 95와 이 노트북의 Window 10이 같을 수는 없잖아요?  

 

뿌요뿌요할 생각에 설렜던 그때 그 화면  VS  제발 업데이트 그만 좀 해라.....

물론 극단적인 예시입니다만, 라이브러리 하나의 버전만 달라도 코드가 제대로 돌아가지 않을 수 있습니다. 마치 Window 95에서 돌렸던 게임을 Window 10에서 돌릴 수 없듯이 말이죠. 그리고 기본적으로 github에 올린 코드들은 다른 사람이 내려받아 사용할 때도 문제없이 돌아가야 합니다. 에초에 코드들 공유하고 프로젝트 하라고 만들어둔 공간이기 때문입니다. 그렇기에 해당 코드 혹은 프로젝트에 쓰였던 라이브러리 및 프레임워크들의 버전을 README에 제대로 표시해둘 필요가 있습니다. 

 

각 라이브러리의 버전을 확인하는 코드는 다음과 같습니다. 

# jupyter notebook에서 라이브러리 버전 확인
# 확인하고 싶은 라이브러리를 import한 후 실행
import urllib.request 
import keras as k
import tensorflow as tf
import pandas as pd
import numpy as np
import cv2

print('request 버전 :' + urllib.request.__version__)
print('keras 버전 :' + k.__version__)
print('tensorflow 버전 :' + tf.__version__)
print('pandas 버전 :' + pd.__version__)
print('numpy 버전 :' + np.__version__)
print('OpenCV 버전 :' + cv2.__version__)

음, 그런데 좀 번거로워 보입니다.

 

이것저것 만지고 뚝딱뚝딱하다 보면 금방 설치할 라이브러리가 불어나는데, 그걸 하나 하나 저렇게 __version__을 써서 확인해볼 수는 없잖아요?

 

놀랍게도 코드 한 줄로 모든 라이브러리의 버전을 확인할 수 있는 방법이 있습니다.

# 한 방에 해당 kernel에 설치된 모든 라이브러리 버전 확인
pip freeze

 

jupyter notebook에서 해당 코드가 실행된 화면을 보겠습니다.

실로 엄청난 스크롤바(앞으로도 늘어날 예정)

 

이제 저 안에서 Ctrl+F의 도움을 받아 확인하고 싶은 라이브러리 이름을 검색해보면 됩니다. 

conda 가상환경을 생성해 평소에 쓰는 기본 kernel과 다른 별도의 kernel을 만들었을 경우, 저 코드를 이용해 각 kernel에 설치된 라이브러리를 비교해볼 수도 있습니다. conda 가상환경 생성과 kernel 연결에 대해서는 다른 포스팅에서 다루겠습니다. 

pip freeze가 편리하기는 하지만, 특정 라이브러리를 업그레이드하거나 다운그레이드한 후 버전을 확인할 때는 당연하게도 __version__이 더 편합니다. 

 

 

도움이 되었기를 바랍니다.