2021년 1월 12일 화요일

Google Colab 에 영구적인 Package 설치 방법

Google Colab 에 영구적인 Package 설치 방법


1. 개요

Google Colab을 이용하면 머신러닝에 필요한 자원을 할당받아 활용할 수 있다.

그러나 주어진 세션의 한계 (12시간 마다 초기화), 혹은 런타임 초기화 시 모든 설치된 Package가 사라진다.

여러 패키지를 사용한다면 매번 설치하는 번거로움 있다.

그래서 영구적인 설정 법을 설명한다.


2. 개념

Colab을 연결해서 사용하기 시작하면 구글 드리이브에 아래 2개 디렉토리가 자동으로 생성된다.

'/content/notebooks'
'/content/mnt/My Drive/Colab Notebooks'

Colab을에서 기본으로 만들어주다 보니 
'/content/notebooks' 이 디렉토리는 세션이 종료되거나,
런타임을 초기화 하면 전부 지워진다.


그래서 내 드라이브 하위에 생성된 '/content/mnt/My Drive/Colab Notebooks' 이 디렉토리와
심볼릭 링크를 걸어서 사용하면 된다.


3. 방법 및 소스

소스는 Colab에 붙혀넣고 실행하면 된다. 나는 다른 폴더에 만들고 싶었으나 오류가 발생하였다.

# 구글 드라이브에 Python Package 영구 설치
# 이후 모든 Notebook 파일 시작에 상단을 추가해서 실행해줘야 함. 단 1회만 하면됨

import os, sys
from google.colab import drive

drive.mount('/content/mnt')

nb_path = '/content/notebooks'
nb_package_path = nb_path + '/packages'
my_path = '/content/mnt/My Drive/Colab Notebooks'

os.symlink(my_path, nb_path, target_is_directory=True)
sys.path.insert(0, nb_package_path)


# Python Package 설치

!pip install --target=$nb_package_path jdc
!pip install --target=$nb_package_path ray
!pip install --target=$nb_package_path modin[ray]

# 설치된 패키지 테스트

!ls '/content/notebooks/packages'
!ls '/content/notebooks'
!ls '/content/mnt/My Drive/Colab Notebooks/packages'

# 세션 / 런타임 초기화

1) 메뉴 > 런타임 > 런타임 초기화
2) 구글 드라이브 마운트

import os, sys
from google.colab import drive

drive.mount('/content/mnt')

3) 디렉토리 내용 보기
!ls '/content/mnt/My Drive/Colab Notebooks/packages'



!ls '/content/notebooks/packages'
여기는 마운트가 안되서 오류남

4) 마운트하고 심볼릭 링크 연결함

import os, sys
from google.colab import drive

drive.mount('/content/mnt')

nb_path = '/content/notebooks'
nb_package_path = nb_path + '/packages'
my_path = '/content/mnt/My Drive/Colab Notebooks'

os.symlink(my_path, nb_path, target_is_directory=True)
sys.path.insert(0, nb_package_path)

5) 파일 확인
!ls '/content/notebooks/packages'

여기서 sys.path.insert(0, nb_package_path) 이렇게 Path를 넣어줘야 패키지 로딩시 기본위치가 됨

이상입니다.


라벨: , , ,