Jupyter 노트북이 일반 텍스트 문서였으면 좋겠다고 생각하셨나요? 즐겨 사용하는 IDE에서 편집할 수 있기를 원하시나요? 버전 제어를 수행할 때 명확하고 의미 있는 차이점을 얻으시겠습니까? 그렇다면 Jupytext가 여러분이 찾고 있는 도구가 될 수 있습니다!
py:percent
형식으로 인코딩된 Python 노트북은 .py
확장자를 가지며 다음과 같습니다.
# %% [markdown]
# This is a markdown cell
# %%
def f(x):
return 3*x+1
노트북 입력(및 선택적으로 메타데이터)만 포함됩니다. 텍스트 노트북은 버전 관리에 매우 적합합니다. IDE에서 편집하거나 리팩터링할 수도 있습니다. 위의 .py
노트북은 일반 Python 파일입니다.
대부분 코드가 포함된 노트북에는 percent
형식을 사용하는 것이 좋습니다. percent
형식은 Julia, Python, R 및 기타 여러 언어에서 사용할 수 있습니다.
노트북이 문서 중심인 경우 Markdown 기반 형식(확장자가 .md
인 텍스트 노트북)이 더 적합할 수 있습니다. 노트북으로 수행하려는 작업에 따라 Jupyter Book, Quarto Markdown 또는 Pandoc Markdown과 매우 잘 상호 운용되는 Myst Markdown 형식을 선호할 수 있습니다.
Jupyter에 사용하는 Python 환경에 Jupytext를 설치합니다. 다음 중 하나를 사용하세요.
pip install jupytext
또는
conda install jupytext -c conda-forge
그런 다음 Jupyter Lab 서버를 다시 시작하고 Jupytext가 Jupyter에서 활성화되었는지 확인하세요. .py
및 .md
파일에는 노트북 아이콘이 있으며 Jupyter Lab에서 마우스 오른쪽 버튼을 클릭하면 해당 파일을 노트북으로 열 수 있습니다.
.py
또는 .md
확장자를 가진 텍스트 노트북은 버전 제어에 매우 적합합니다. IDE에서 편리하게 편집하거나 작성할 수 있습니다. 마우스 오른쪽 버튼을 클릭하면 Jupyter Lab에서 노트북으로 열고 실행할 수 있습니다. 그러나 텍스트 노트북에는 노트북 입력만 저장되므로 노트북을 닫으면 노트북 출력이 손실됩니다.
텍스트 노트북의 편리한 대안은 페어링된 노트북입니다. 이는 동일한 노트북을 포함하지만 형식이 다른 .ipynb
및 .py
라는 두 파일 세트입니다.
페어링된 노트북의 .py
버전을 편집하고 reload Notebook from disk 를 선택하여 Jupyter에서 편집 내용을 다시 가져올 수 있습니다. 출력은 .ipynb
파일(있는 경우)에서 다시 로드됩니다. .ipynb
버전은 다음에 Jupyter에 노트북을 저장할 때 업데이트되거나 다시 생성됩니다.
Jupyter Lab에서 노트북을 페어링하려면 명령 팔레트에서 Pair Notebook with percent Script
사용하세요.
특정 디렉터리의 모든 노트북을 페어링하려면 다음 콘텐츠로 구성 파일을 만듭니다.
# jupytext.toml at the root of your notebook directory
formats = "ipynb,py:percent"
Jupytext는 명령줄에서도 사용할 수 있습니다. 당신은 할 수 있습니다
jupytext --set-formats ipynb,py:percent notebook.ipynb
와 페어링합니다.jupytext --sync notebook.py
사용하여 페어링된 파일을 동기화합니다(입력은 가장 최근에 페어링된 파일에서 로드됨).jupytext --to ipynb notebook.py
를 사용하여 한 형식의 노트북을 다른 형식으로 변환합니다(특정 출력 파일을 원할 경우 -o
사용).jupytext --pipe black notebook.ipynb
사용하여 노트북을 린터로 파이프합니다. 빠른 방법은 다음과 같습니다.
.ipynb
노트북을 열고 Jupyter Lab의 pair 명령이나 전역 구성 파일을 사용하여 .py
노트북에 페어링합니다..py
노트북이 생성됩니다..py
노트북을 추가하세요. 버전 제어에서 .ipynb
파일을 제외할 수 있습니다(출력 버전을 보고 싶지 않은 경우!). Jupytext는 사용자가 .py
노트북을 열고 저장할 때 .ipynb
파일을 로컬로 다시 생성합니다.
Git을 통해 Jupyter 노트북에서 공동작업하는 것은 텍스트 파일 공동작업만큼 쉬워집니다.
버전 제어 하에 .py
노트북이 있다고 가정합니다(위 참조). 그 다음에,
.py
노트북을 가져옵니다..ipynb
파일이 생성됩니다.notebook.py
파일을 푸시합니다. diff는 Python 스크립트의 표준 diff에 지나지 않습니다.notebook.py
스크립트를 가져오고 브라우저를 새로 고칩니다. 입력 셀은 notebook.py
의 새 콘텐츠를 기반으로 업데이트됩니다. 출력은 로컬 .ipynb
파일에서 다시 로드됩니다. 마지막으로 커널 변수는 그대로 유지되므로 수정된 셀만 실행하여 새 출력을 얻을 수 있는 옵션이 있습니다. 노트북이 .py
파일과 쌍을 이루면 IDE에서 노트북의 .py
표현을 쉽게 편집하거나 리팩터링할 수 있습니다.
.py
노트북 편집이 완료되면 Jupyter에서 노트북을 다시 로드하여 최신 편집 내용을 가져오기만 하면 됩니다.
참고: 페어링된 .py
파일을 편집할 때 Jupyter에서 .ipynb
노트북을 닫는 것이 더 간단합니다. 그렇게 할 의무는 없습니다. 그러나 그렇지 않은 경우 팝업 메시지를 주의 깊게 읽을 준비를 해야 합니다. 마지막 다시 로드 이후 페어링된 .py
파일이 디스크에서 편집된 상태에서 Jupyter가 노트북을 저장하려고 하면 충돌이 감지되고 어떤 버전의 노트북(메모리 또는 디스크)이 가장 적합한지 결정하라는 메시지가 표시됩니다. 적절한 것.
설명서에서 Jupytext에 대해 자세히 알아보세요.
Jupytext를 처음 사용하는 경우 FAQ나 튜토리얼부터 시작하는 것이 좋습니다.
Jupytext에 대한 간단한 소개도 있습니다: .