IPython/Jupyter 설정도 pipenv로 관리
TL;DR
2018년 파이썬 프로젝트 시작하기 에 있듯이, pipenv 의 등장에 의해 Python 에서도 의존관계 (Python 버젼 + 패키지)를 양쪽 관리한 환경 구축을 간단하게 할 수 있게 되었습니다. 그렇게 되면, IPython 이나 Jupyter 의 설정 파일이나, 패키지의 임포트등을 기술할 수 있는 IPython 의 스타트업 스크립트도 환경 마다 관리하고 싶은 곳입니다. 따라서이 기사에서는 pipenv로 만든 환경에서이를 관리하는 방법을 요약합니다.
Create an environment
전제 조건으로 다음 명령을 사용하여 pipenv로 만든 가상 환경 (여기서 이름을 env이라고 함)과 IPython/Jupyter가 이미 설치되어 있다고 가정합니다. 달리 명시하지 않는 한, 명령은 env에서 실행된다고 가정합니다. 또한 가상 환경에 (
pipenv shell
에서) 들어가서 명령을 실행하는 경우 프롬프트를 (env) $
로 표시했습니다.$ mkdir env && cd env
$ pipenv --python 3
$ pipenv install ipython jupyter
IPython profile
IPython 관련은 프로파일이라고 불리는 디렉토리와 파일군에 의해 설정됩니다. 보통 이것은
ipython profile create default
에 의해 ~/.ipython/profile_default 에 작성되는 경우가 많다고 생각합니다만, 아무것도 하지 않으면 가상 환경에서도 이것을 계승해 사용해 버리기 때문에, 별로 사용하기 편하지 않습니다. 그래서 env 이하에 프로파일을 작성해, 이것을 읽어들이도록 pipenv 를 설정합니다.먼저 .env 파일에 다음 환경 변수를 쓰면 pipenv가 실행될 때 env/.ipython이 ~/.ipython 대신 IPython 디렉토리로 사용됩니다.
$ echo IPYTHONDIR=`pwd`/.ipython >> .env
이 상태에서 다음과 같이 프로파일을 작성하면 env/.ipython/profile_default가 작성됩니다.
$ pipenv shell
(env) $ mkdir -p .ipython
(env) $ ipython profile create default
예를 들어 시작 스크립트에서 패키지를 가져올 수 있습니다.
# import this で Zen of Python を表示
(env) $ echo 'import this' >> .ipython/profile_default/startup/01.py
이 상태에서 IPython shell을 시작해 봅니다. 다음과 같이 Zen of Python이 표시되면 성공합니다.
(env) $ ipython
Loading .env environment variables…
Python 3.6.5 (default, Jul 10 2018, 11:33:24)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
...
Create a Jupyter kernel
위에서 만든 프로필을 Jupyter Notebook에서도 사용하려면 프로필을 받을 수 있는 IPython 커널을 만들어야 합니다. 다음 명령은 .venv 이하에 커널을 만듭니다.
(env) $ ipython kernel install --sys-prefix --profile default --display-name Default
Installed kernelspec python3 in /path/to/env/.venv/share/jupyter/kernels/python3
옵션 중
--profile
는 IPython 프로필 이름과 동일하게 유지합니다. --display-name
는 브라우저에 표시되는 모든 커널 이름입니다. 이 상태에서 Jupyter Notebook을 시작해보십시오.(env) $ jupyter notebook
웹 브라우저가 열리고 새 노트북 작성(New)에서 위에서 설정한 커널(여기서는 Default)을 선택할 수 있게 되어 있으면 성공입니다.
데모 리포지토리
여기까지의 순서는, 스크립트에 정리해 pipenv의 스크립트 바로 가기 로부터 실행할 수 있도록 해 두는 것이 편리합니다. 그래서 이 데모용으로 다음 리포지토리를 GitHub에서 공개했습니다.
astropenguin/pipenv-ipython-jupyter: Demo of IPython/Jupyter custom config management by Python-pipenv
이 저장소에는 etc/configure에 일련의 스크립트가 포함되어 있습니다. 리포지토리를 clone 한 후 다음과 같이 실행하면 위의 설정이 자동으로 수행됩니다.
$ pipenv install
$ pipenv run configure
그리고 .ipython/profile_default 를 git로 관리한다면 환경 구축이 더욱 쉬워질 것입니다!
References
Reference
이 문제에 관하여(IPython/Jupyter 설정도 pipenv로 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/astropenguin/items/48fbef2e81c11247e0d1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)