기본 콘텐츠로 건너뛰기

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를 넣어줘야 패키지 로딩시 기본위치가 됨

이상입니다.


댓글

이 블로그의 인기 게시물

[2024-10-19] iPhone, iPad에서 ChatGPT로 PDF 생성시 한글 깨짐 해결 방법

iPhone, iPad에서 ChatGPT로 PDF 생성 시 한글 깨짐 해결 방법

[quaser.dev][2014-09-14] 윈도우즈(10, 64bit)에 개발환경 설정하기

[quaser.dev][2014-09-14] 윈도우즈(10, 64bit)에 개발환경 설정하기

[2025-04-16(수)] OpenAI gpt-4.1 시리즈 발표, Anthropic Claude에 대한 생각

OpenAI gpt-4.1 시리즈 발표, Anthropic Claude에 대한 생각 안녕하세요. 클스 입니다. 4/15일자로 openai가 gpt-4.1 시리즈를 발표 했습니다. 현재는 api로만 사용가능합니다. 점차 웹/앱 사용자에게 오픈 될거라 생각 됩니다. 비용상 문제로 4.1-mini, nano를 사용해서 chatbot을 만들어 보고 있습니다. 4o 시리즈 보다는 확실히 빠르고, 답변의 정확도는 올라간 것 같습니다. 앤트로픽 클로드와 비교를 많이 하는데, 업무 시스템 혹은 AI 솔루션을 개발하는 입장에서는 어떤 생태계를 제공하는가가 주요한 결정 입니다. AI관련 인력을 충분히 보유한 회사의 경우는 어떤걸 사용해도 좋을 결과를 가지겠지만 일반적인 챗봇 개발 절차를 보면 다음과 같이 볼 수 있습니다. 1. 문서를 준비한다. 대부분 pdf, text, markdown 2. 문서를 파싱해서 vectordb에 올린다.     - 별도 벡터디비 구성 필요. 어떤 db를 선택할지 고민 필요     - 어떤 Parser를 사용할지, 텍스트 오버래핑은 얼마가 적당한지 고민 필요        (회사의 문서가 워낙 많고, 다양하면 하나하나 테스트 해서 좋은걸 선택하는 것이 어렵다)     - 유사도 측정은 어떤 알고리즘을 써야할지 고민 필요     - llamaindex도 고민해야 함. 3. RAG flow를 만든다.     - langchain을 쓸지, 각 AI 벤더에서 제공하는 sdk를 쓸지 고민 필요       (대부분 락인이 되지 않으려면 langchain을 사용하면 좋지만, 벤더에 특화면 기능 적용이 늦음) 4. 챗봇 UI 앱을 만든다.     - 답변이 text 로 구성되다 보니. 그래프, 이미지등 복합적인 컨텐츠를 재배치 하여 표현하기 상당히 어렵네요. (이건 제가 실력이 모자라서 .. 패스) ...