모듈(.py) 안에서 library 설치

  • Colab 같은 클라우드 환경 사용 비중이 늘어나고 있습니다.
  • 클라우드에 기본으로 설치되지 않은 라이브러리를 설치하는 방법을 알아봅니다.
  • pip도 import 해서 사용할 수 있습니다.

1. 클라우드 환경

  • Google Colab이나 Streamlit cloud 처럼 클라우드 기반 서비스 활용 비율이 늘어납니다.
  • 장점이 많지만 서버가 물리적으로 고정되어 있지 않다 보니 필요한 라이브러리가 없을 때가 많습니다.
  • 일일이 확인하면서 !pip install {library}를 실행하기가 번거롭습니다.
  • 그렇다고 requirements.txt를 쓸 만큼 큰 일도 아닐 때 간단하게 처리하고 싶습니다.

2. import pip

  • 라이브러리 설치에 사용하는 pip는 import도 가능합니다.
  • 노트북 환경이건 모듈로 사용되는 .py 파일이건 무관합니다.
  • 프로그램 시작 부분에 아래 코드를 삽입해 import가 안 되어 있는 라이브러리를 설치할 수 있습니다.
  • 아래는 geopandas를 사용하고자 설치하는 코드입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import pip

def install(package, upgrade=True):
# package install with upgrade or not
if hasattr(pip, 'main'):
if upgrade:
pip.main(['install', '--upgrade', package])
else:
pip.main(['install', package])
else:
if upgrade:
pip._internal.main(['install', '--upgrade', package])
else:
pip._internal.main(['install', package])

# import package
try:
eval(f"import {package}")
except ModuleNotFoundError:
print("# Package name might be differnt. please check it again.")
except Exception as e:
print(e)

3. GeoPandas 예제: Choro legends

GeoPandas Example Gallery: Choro legends

  • 같은 요령으로 Colab 기본 설치 라이브러리가 아닌 mapclassifylibpysal을 설치합니다.
  • 이후 아래 코드를 실행하면 깔끔하게 실행됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
%matplotlib inline

import matplotlib.pyplot as plt
from geopandas import read_file

_ = libpysal.examples.load_example('South')
pth = libpysal.examples.get_path('south.shp')
df = read_file(pth)

fig, ax = plt.subplots(figsize=(10, 5), constrained_layout=True)
df.plot(column='HR60', scheme='QUANTILES', k=4, \
cmap='BuPu', legend=True,
legend_kwds={'loc': 'center left', 'bbox_to_anchor':(1,0.5)},
ax=ax)

fig.savefig("13_install_01.png")



도움이 되셨나요? 카페인을 투입하시면 다음 포스팅으로 변환됩니다

Share