Python Package Settings on Google Colab

Page content

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. 개요

  • 교육상, 최근 kaggle 및 국내 경진 대회에 참여할 일이 생겼다.
  • 실습을 해보니, 매번 패키지와 파일을 다운로드 받는 것이 많이 불편했다.
    • 파일을 열 때마다, !pip install name_of_package을 실행해야 하는 번거로움이 있다.
  • 이러한 해결책으로 파이썬 패키지를 Google Colab에 영구적(Permantly)으로 설치하는 것을 실습한다.

II. 구글 드라이브 활용

  • 구글 드라이브에 패키지 모듈을 내려받고, 구글 드라이브에서 패키지를 불러오는 방식이다. 아래 코드를 보자.

(1) 사전 준비

  • 이 때 패키지 관리 폴더는 Colab Notebooks 안에 pkg_folders가 없다면 관련 경로대로 추가를 해야 한다. 만약 폴더가 없다면 에러가 날 것이다.
import os, sys
from google.colab import drive
drive.mount('/content/mnt')
my_path = '/content/notebooks'
os.symlink('/content/mnt/My Drive/Colab Notebooks/pkg_folders', my_path)
sys.path.insert(0,my_path)
Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly

Enter your authorization code:
··········
Mounted at /content/mnt
  • 위 코드의 실행 결과는 구글 드라이브가 mount가 되었음을 의미하며, 이제 pip install package를 실행하면 타겟 경로에 패키지 파일을 받을 수 있습니다.

(2) 패키지 설치 실습 openpyxl

  • 엑셀 관련 패키지인 openpyxl을 설치합니다.
!pip install openpyxl

그러나, 이제 아래와 같이 설치를 해야 합니다.

!pip install --target=$my_path openpyxl
!pip install --target=$my_path openpyxl
Processing /root/.cache/pip/wheels/b5/85/ca/e768ac132e57e75e645a151f8badac71cc0089e7225dddf76b/openpyxl-3.0.3-py2.py3-none-any.whl
Collecting jdcal
Using cached https://files.pythonhosted.org/packages/f0/da/572cbc0bc582390480bbd7c4e93d14dc46079778ed915b505dc494b37c57/jdcal-1.4.1-py2.py3-none-any.whl
Processing /root/.cache/pip/wheels/2a/77/35/0da0965a057698121fc7d8c5a7a9955cdbfb3cc4e2423cad39/et_xmlfile-1.0.1-cp36-none-any.whl
Installing collected packages: jdcal, et-xmlfile, openpyxl
Successfully installed et-xmlfile-1.0.1 jdcal-1.4.1 openpyxl-3.0.3
  • 에러 없이 정상적으로 설치가 된 것을 확인할 수 있다.
  • 이 때, Google DriveWeb UI에서도 패키지가 정상적으로 다운로드가 받아진 것을 확인할 수 있다.

  • 예제 코드를 실행하자.
  • package를 불러와보자.
from openpyxl import __version__
print(__version__)
3.0.3
  • 정상적으로 버전이 불러와졌다면 패키지가 설치된 것이다.

(3) 한글 konlpy 설치

  • 이번에는 konlpy를 설치해보자.
!apt-get update
!apt-get install g++ openjdk-8-jdk 
!pip3 install --target=$my_path konlpy
Hit:1 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic InRelease
Hit:2 http://archive.ubuntu.com/ubuntu bionic InRelease                        
.
.
.
Collecting konlpy
Downloading https://files.pythonhosted.org/packages/85/0e/f385566fec837c0b83f216b2da65db9997b35dd675e107752005b7d392b1/konlpy-0.5.2-py2.py3-none-any.whl (19.4MB)
    |████████████████████████████████| 19.4MB 37.0MB/s 
.
.
.
Installing collected packages: beautifulsoup4, numpy, colorama, lxml, six, PySocks, urllib3, chardet, certifi, idna, requests, oauthlib, requests-oauthlib, tweepy, JPype1, konlpy
Successfully installed JPype1-0.7.5 PySocks-1.7.1 beautifulsoup4-4.6.0 certifi-2020.4.5.1 chardet-3.0.4 colorama-0.4.3 idna-2.9 konlpy-0.5.2 lxml-4.5.1 numpy-1.18.4 oauthlib-3.1.0 requests-2.23.0 requests-oauthlib-1.3.0 six-1.15.0 tweepy-3.8.0 urllib3-1.25.9
WARNING: Target directory /content/notebooks/__pycache__ already exists. Specify --upgrade to force replacement.
from konlpy.tag import Twitter

twitter = Twitter()
twitter.pos("질문이나 건의사항은 깃헙 이슈 트래커에 남겨주세요")
/content/notebooks/konlpy/tag/_okt.py:16: UserWarning: "Twitter" has changed to "Okt" since KoNLPy v0.4.5.
warn('"Twitter" has changed to "Okt" since KoNLPy v0.4.5.')
[('질문', 'Noun'),
('이나', 'Josa'),
('건의', 'Noun'),
('사항', 'Noun'),
('은', 'Josa'),
('깃', 'Noun'),
('헙', 'Verb'),
('이슈', 'Noun'),
('트래커', 'Noun'),
('에', 'Josa'),
('남겨주세요', 'Verb')]
  • 정상적으로 패키지가 불러와지는 것을 확인할 수 있다.

III. 새로운 노트북에서의 실습

  • 이제 새로운 Notebook을 열고 위 기 설치된 두개의 패키지가 정상적으로 실행되는지 확인해본다.
  • 이 때 주의해야 하는 것은 새로운 Notebook은 자동으로 경로가 설정된 것은 아니기 때문에, 아래 코드를 명시적으로 상단에 입력해주는 것이 좋다.
import os, sys
from google.colab import drive
drive.mount('/content/mnt')
my_path = '/content/notebooks'
os.symlink('/content/mnt/My Drive/Colab Notebooks/pkg_folders', my_path)
sys.path.insert(0,my_path)
  • 아래 그림을 보면 별도의 패키지 설치 없이 Google Drive를 활용하여 패키지가 불러와지는 것을 확인할 수 있다.

IV. Reference

어쩐지 오늘은. (2018, August 30). Google Colab 사용하기. Retrieved May 23, 2020, from https://zzsza.github.io/data/2018/08/30/google-colab/

Korakot. (2019, March 20). How do I install a library permanently in Colab? Retrieved May 23, 2020, from https://stackoverflow.com/questions/55253498/how-do-i-install-a-library-permanently-in-colab

Lee, T. (2020, March 20). Google Colab에서 python 패키지를 영구적(permanently)으로 설치하는 방법. Retrieved May 23, 2020, from shorturl.at/ktANW