반응형
ipynbgit

jupyter 노트북 ipynb과 git 연동시 문제

ipynb 노트북 파일을 git에 올려서 형상관리를 하기란 쉽지 않다. 소스코드만이 아니라 output 이 포함되어 있고, 그 외 라인 번호 등 여러가지 추가 정보들 때문에 diff 하기도 정말 어려울 때가 많다. 나중에 충돌 발생하면 어떤 게 최신인지 모를 정도다.
정말 소스 텍스트만 diff 해 주면 좋을 텐데. 충돌도 덜 날 수 있을 텐데.
방법이 없을까???

jupytext를 이용하자.
jupytext를 사용하면 ipynb와 py를 쌍으로 자동 동기화가 가능하다. 주의할 점은 파일명은 동일하고 확장자명만 변경되므로 중복되지 않도록 조심해야 한다.

jupyter notebook에서 ipynb나 py 아무거나 연다음 jupytext 메뉴에 pair로 연결하게 하면 쌍으로 (ipynb, py) 파일이 생성되고, 어느 한 쪽이 수정되면 자동 변경 감지하여 업데이트하게 된다.
이로써 형상관리는 ipynb대신 py 파일 (script)만 관리하게 되면 편리하다. (diff도 source script만 하게되어 변경 내역을 확인할 수 있다.)

사용 준비

먼저 설치 패키지

pip install jupytext --upgrade

설정 변경
jupyter notebook --generate-config

.jupyter/jupyter_notebook_config.py 설정 파일 수정 (윈도우는 %USERPROFILE% 경로에서 찾으면 되고, 리눅스는 ~(home)에서 찾으면 된다.)
다음을 찾아 수정 또는 추가한다.

c.NotebookApp.contents_manager_class="jupytext.TextFileContentsManager"

노트북 재시작. (jupyter notebook)
ipynb 노트북 코드 생성을 하면 쌍으로 .py 파일이 생성된다.

image

Jupyter Lab은???

jupyter lab에서도 동일하게 사용할 수 있다. 왼쪽에 메뉴로 들어가서 jupy로 검색하면 pair가 있다. (jupytext 패키지가 설치된 경우)

image

Author: crazyj7@gmail.com

'Python' 카테고리의 다른 글

인코딩에러 cp949  (1) 2019.10.02
ipynb와 py 양방향 전환  (2) 2019.09.30
초간단 python 서버만들기2  (0) 2019.09.25
초간단 웹API서버만들기  (0) 2019.09.25
그래프 리셋(seaborn plot graph reset)  (0) 2019.09.20

+ Recent posts