파이썬이 데이터 사이언스, 머신러닝과 관련된 분야에서 눈에 띄게 성장하는 가운데 있다.
그러한 가운데 가끔씩 github을 돌아다니다 보면 ipynb 파일을 그대로 올린 경우를 본적이 있다.
물론 코드를 보는데에 문제가 있는 것은 아니다. 코드를 보고 어떻게 실행하였는지 보는데에는 상관이 없으나...
정작 github의 본래의 의미를 퇴색시켜 버리는 것은 아닌가 하는 생각이 든다.
git 이란 형상관리를 위해 존재하는 것인데 jupyter notebook으로 생성한 ipynb 파일은 출력 내용도 그대로 담고 있다.
출력 내용은 항상 똑같이 나올수가 없다.
예를 들면 날짜라던지.. 어제 실행한 코드와 오늘 실행한 코드 사이에 출력이 달라져버려 이를 커밋하게 되고
그렇게 되면 코드를 관리하는데 있어서 히스토리를 보는데 많은 불편함이 생길수 밖에..
또 ipynb를 읽는데 너무너무 느리다. 그래서 ipynb 파일을 보려면 로딩되는데 꾀나 오랜 시간이 걸리게 된다. 이거 기다리느니 그냥 다른 작업을 하게 되는 나를 본다...
그러니 이를 사용하기 보다는 다른 방법을 찾아야 한다.
그래서 찾은 것은 바로
jupytext
이것을 사용하면 ipynb 파일을 생성하거나 수정시 py 파일을 만들어준다. py 파일을 생성하는 것이니 당연히 출력 내용없이 코드만 볼수 있다. 형상관리의 의미를 퇴색시키지도 않고 작업한 내용은 그대로 저장되니 문제 없다.
또 실행해본 결과 jupyter notebook 에서도 py 파일을 읽어 실행할수 있다.
그럼 본격적으로 설치 방법과 적용방법을 알아보자.
jupyter notebook 이 이미 설치되어있고 사용중이라 생각들어 anaconda 설치방법은 넘어가겠다.
설치방법
$ pip install jupytext
설치가 완료되었다면 아래 명령어를 통해 config 파일을 생성해준다.
$ jupyter notebook --generate-config
Overwrite /home/ubuntu/.jupyter/jupyter_notebook_config.py with default config? [y/N]
## 설정을 변경한게 있다면 덮어쓰면 안되겠죠?
이미 config 파일이 있는 경우엔 덮어쓸것인지 물어본다. 자신의 환경에 맞게 작업하면 되겠다.
그리고 config 파일에 들어가 설정을 변경해줘야 한다.
$ sudo vi /home/ubuntu/.jupyter/jupyter_notebook_config.py
...
c.NotebookApp.contents_manager_class = 'jupytext.TextFileContentsManager'
...
config 파일을 들어가 c.NotebookApp.contents_manager_class 를 검색하고 위와같이 바꿔주자.
vi 에디터에서 / 누르고 검색할 단어를 입력하면 찾을수 있는것은 다 알고 있는거겟죠?
그리고 난뒤 jupyter notebook을 재시작 하자.
재시작 방법은 알아서 하시면 되겠고... 프로세스 킬을 하든, 다양한 방법으로..
이제 jupyter notebook 을 실행하고 ipynb 파일을 들어가서 한가지 설정만 해주면 된다.
이미지에서 보이는대로 Pair Notebook with light Script 를 체크해주게 되면 이후에 어떻게 되는지 보자!!!
이와 같은 짝이 생기게 된다.
ipynb 파일을 작업해도 짝으로 저장이 되므로 어느파일을 작업해도 상관없다.
이렇게 되면 ipynb 파일은 .gitignore에 등록해서 속도저하와 코드 관리의 어려움을 깔끔하게 해결할 수 있겠다.
오늘도 파이팅 합시다!!!
'Python' 카테고리의 다른 글
파이썬 예외 처리방법, traceback. (0) | 2020.07.20 |
---|---|
파이썬으로 word 파일 읽어오기 (0) | 2020.07.15 |
python literal_eval과 eval 함수에 대한 차이점 (0) | 2020.06.19 |
pandas DataFrame에 대한 정리 (0) | 2020.06.19 |
파이썬 타입 체크. if문으로 타입 체크!!! (0) | 2020.06.19 |
댓글