JupyterLab에서 Jupyter notebook (ipynb)의 차이를 쉽게 볼 수 있습니다.
TL;DR
Jupyter Notebook에서 분석을 진행할 때 버전을 관리하고 싶습니다. 익스텐션을 이용해, 차분을 보기 쉽게 표시할 수 있도록 해 보았습니다.
JupyterLab 환경 구축
이번 기사에서는 아래와 같은 환경을 이용합니다.
Jupyter notebook의 버전 제어에 필요한 JupyterLab 확장은 다음과 같습니다.
nbdime
환경 구축
아래의 2 파일을 작성합니다.
Dockerfile
FROM gcr.io/kaggle-images/python:v74
RUN apt-get update && \
apt-get install -y git \
curl
RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - &&\
apt-get install -y nodejs
RUN pip install -U pip \
jupyterlab && \
pip install jupyterlab-git
RUN jupyter lab build
docker-compose.yml
version: "3"
services:
jupyter:
build: .
volumes:
- $PWD:/tmp/work
working_dir: /tmp/work
ports:
- 8888:8888
command: jupyter lab --ip=0.0.0.0 --allow-root --no-browser
Docker 이미지 빌드
상기 2 파일을 작성 후, 같은 디렉토리에서 빌드합니다.
$ docker-compose build
컨테이너 시작
빌드 후 컨테이너를 시작합니다.
$ docker-compose up
시작 후 http://localhost:8888/ 에 액세스하고 token 을 입력하여 JupyterLab 에 액세스할 수 있습니다.
token 은 기동 후에 출력되는 예:
jupyterlab-git
의 nbdime
에 해당하는 부분입니다.Extension Manager 사용
시작 후 Exxtension Manager를 Enable합니다.
두 개의 확장이 설치되어 있습니다.
노트북을 Git으로 버전 관리하기
Git 리포지토리 를 Clone
필요한 리포지토리를 복제합니다. 이미 Notebook 등이 있는 경우는 git init 등을 합니다.
리포지토리 URL 입력
Notebook (
http://acb729d0c5ce:8888/?token=45d10c660d2e85f0c8d59995a04667c154542ae79f27f65d
)을 만들고 first commit 합니다.$ git config --global user.email "[email protected]"
$ git config --global user.name "Your Name"
$ git add test.ipynb
$ git commit -m "first commit"
first commit 후에 Notebook에서 분석을 진행했다고 가정합니다. 예를 들어 df.head() 라는 코드를 추가했다고 가정합니다.
git diff에서의 차이 표시
우선,
45d10c660d2e85f0c8d59995a04667c154542ae79f27f65d
커멘드로 확인했을 경우는, 아래와 같이 Notebook 의 메타데이타등의 차분이 표시되어 버려 매우 이해하기 어렵습니다.# git diff
diff --git a/test.ipynb b/test.ipynb
index f6c1f17..5af6074 100644
--- a/test.ipynb
+++ b/test.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 1,
+ "execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -21,7 +21,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
@@ -30,12 +30,164 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(data_dir + \"train.csv\")"
]
+ },
+ {
+ "cell_type": "code",
:
JupyterLab nbdime의 차이 표시
JupyterLab에서 nbdime을 사용하여 diff를 확인한 경우 다음과 같습니다. 핑크의 왼쪽은 변경 전, 녹색의 오른쪽은 변경 후입니다.
매우보기 쉽고 차이가 표시된다고 생각합니다.
참고
Reference
이 문제에 관하여(JupyterLab에서 Jupyter notebook (ipynb)의 차이를 쉽게 볼 수 있습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TaigoKuriyama/items/2d0280b0e732fd9cff8f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)