태그 보관물: Jupyter Notebook

GCP 노트북 인스턴스에서 virtualenv 사용하기

구글 클라우드의 AI 플래폼에서 제공하는 노트북 인스턴스를 사용하면 주피터 노트북 기반의 연구나 실험을 편리하게 수행할 수 있습니다. 이따금 한 인스턴스에서 여러 개의 virtualenv 운영하고 싶을 때가 있습니다. 이 글에서 virtualenv 환경을 만들어 주피터 노트북과 연결하는 간단한 방법을 안내하겠습니다.

노트북 인스턴스를 만든 다음 OPEN JUPYTERLAB을 클릭하면 다음과 같은 화면이 새창으로 열립니다.

default_jupyterhub.png

노트북 인스턴스는 기본적으로 파이썬 2와 파이썬 3의 노트북 환경을 제공합니다. 시스템 전역에 설치된 파이썬을 그대로 두고 가상 환경을 만들어 연결해 보겠습니다.

먼저 인스턴스에 접속해야 합니다. jupyterlab의 Terminal이나 cloud shell을 사용해 인스턴스에 접속할 수 있습니다. 이 jupyterlab은 jupyter 계정에 연결되어 있습니다. cloud shell에서 인스턴스의 jupyter 계정으로 접속하세요. 기본 계정으로 접속했다면 jupyter 계정으로 전환하세요.

가상 환경을 만들 프로젝트 디렉토리로 이동한 후 파이썬 3 기반의 가상 환경을 만들기 위해 다음과 같은 virtualenv 명령을 실행합니다.

$ virtualenv --python python3 env

이제 다음 명령으로 가상 환경을 활성화합니다. 환경을 활성화한 후에는 시스템에 독립적으로 원하는 파이썬 패키지를 마음껏 설치할 수 있습니다.

$ source env/bin/activate

이제 만든 환경을 주피터에 연결할 차례입니다. 시스템에서 기본적으로 제공하는 주피터 커널은 다음과 같습니다.

/usr/local/share/jupyter/kernels/python2/kernel.json
/usr/local/share/jupyter/kernels/python3/kernel.json

앞에서 만든 가상 환경을 커널에 추가하는 방법은 간단합니다. 먼저 루트로 계정을 바꾼 후 kernels 디렉토리로 이동하여 원하는 이름의 디렉토리를 하나 만듭니다.

# cd /usr/local/share/jupyter/kernels
# mkdir gdl

기존 커널의 kernel.json 파일 하나를 위에서 만든 디렉토리 아래로 복사합니다.

# cp python3/kernel.json ./gdl/

복사한 kernel.json 파일에서 display_name을 원하는 이름으로 바꾸어 줍니다. argv 키 아래 리스트의 첫 번째 항목을 앞에서 만든 가상 환경의 파이썬 실행 경로로 바꿉니다.

{
  "display_name": "gdl",
  "language": "python",
  "argv": [
    "/home/jupyter/your_project/env/bin/python3",
    "-m",
    "ipykernel_launcher",
    "-f",
    "{connection_file}"
  ]
}

kernel.json 파일을 저장한 다음 jupyterlab 창을 닫고 다시 OPEN JUPYTERLAB을 클릭하여 새 페이지를 엽니다. 이제 다음처럼 gdl 환경으로 실행할 수 있는 노트북과 콘솔 메뉴가 보일 것입니다.

add_new_env

노트북 인스턴스를 바꿔가며 작업하기 번거로운 경우 간단한 설정만으로 한 인스턴스 내에서 여러 개의 파이썬 가상 환경을 실험해 보세요! 🙂

Colab 팁: 깃허브 노트북 바로 열기!

일전에 구글이 공개한 주피터 노트북 환경인 Colab에 대해 포스팅했었습니다. Colab은 구글 드라이브에 있는 노트북(ipynb) 파일을 읽어서 실행하고 결과를 다시 구글 드라이브로 저장할 수 있어 교육 목적이나 간단한 실습용으로 유용합니다. 다만 요즘 공개된 자료는 대부분 깃허브에 올리기 때문에 Colab을 잘 쓰지 않았는데요. Colab이 깃허브와 연동되네요! 🙂

사용하는 방법은 nbviewer에서 깃허브의 노트북 파일을  지정하는 것과 매우 유사합니다. 깃허브에 있는 ‘파이썬 라이브러리를 활용한 머신러닝’ 노트북 하나를 선택하면 브라우저 주소는 다음과 같습니다.

https://github.com/rickiepark/introduction_to_ml_with_python/blob/master/01-introduction.ipynb

이 주소에서 https://github.com 을 github로 바꾸고 https://colab.research.google.com/ 뒤에 붙여 주면 됩니다.

https://colab.research.google.com/github/rickiepark/introduction_to_ml_with_python/blob/master/01-introduction.ipynb

그럼 다음 그림처럼 Colab에서 깃허브 노트북을 가져와 실행해 볼 수 있습니다. 정말 편하네요! 실행한 결과는 깃허브에 저장할 수도 있고 자신의 구글 드라이브에 따로 저장할 수 있습니다. 이제 아이패드에서도 주피터 노트북으로 코딩을 할 수 있겠어요! 🙂

스크린샷 2018-04-19 오전 11.56.27

New Jupyter Environment: Colaboratory

구글이 회사 내부에서 사용하고 있던 주피터 노트북의 커스텀 버전인 Colaboratory를 공개하였습니다. Colaboratory는 연구와 교육의 목적으로 개발되었다고 합니다. https://colab.research.google.com에 접속하면 샘플 노트북이 로드되는데요. 주피터 커널이 연결되어 있지 않은 상태입니다. 커널을 연결하기 위해서 권한을 요청하면 하루 정도 지나서 메일로 승인이 되었다는 안내를 받을 수 있습니다.

Colab에서 노트북을 생성한 후에 구글 드라이브에 저장을 할 수가 있습니다. 또한 구글 드라이브에서 새 문서 버튼을 통해 Colab 노트북을 직접 만들 수도 있습니다. 또 로컬 컴퓨터에 있는 주피터 노트북을 업로드해서 다른 사람과 공유할 수도 있습니다. 막다운markdown과 라텍LaTex도 물론 지원됩니다. 또 좀 더 편리한 텍스트 셀을 제공하고 있습니다.

스크린샷 2017-10-26 오전 11.40.12

Colab 노트북의 최대 크기는 20M까지입니다. Python 2.7만 지원하고 R이나 Scala는 아직 지원하고 있지 않습니다. 재미있는 것은 대부분의 파이썬의 과학 패키지는 최신 버전을 유지하고 있는데 텐서플로와 Scikit-Learn의 버전이 좀 뒤쳐져 있네요. 하지만 스터디나 튜토리얼 세션 등에는 유용하게 사용될 수 있을 것 같습니다. 🙂

스크린샷 2017-10-26 오전 10.58.27