https://github.com/jupyter-widgets/ipywidgets/blob/master/docs/source/user_install.md 의 번역입니다.
설치
현재버전의 ipywidgets는 pip 나 conda 로 설치가 가능하다.
Pip로 설치
pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension
virtualenv 를 사용해서 활성화(activate)된 가상환경에서 작업할 경우에는, 고립된 환경에서 확장을 enable하려면, --sys-prefix
옵션이 필요할 수 있다. (즉, jupyter nbextension enable --py widgetsnbextension --sys-prefix
로 실행한다.)
Conda로 설치
conda install -c conda-forge ipywidgets
conda로 ipywidgets 를 설치할 때에는 확장 enable 명령까지 자동으로 해준다.
다중 환경에 설치 (Installing with multiple environments)
주피터 노트북과 ipython 커널이 서로 다른 환경(virtualenv 나 conda environment)에 설치되기도 한다. 여러 환경으로 서로 다른 ipython kernel 을 제공하여 사용하는 경우 이런 상황이 된다. 이 경우엔, 설치에 2단계 작업이 필요하다.
첫번째로, widgetsnbextension
패키지를 주피터 노트북 서버가 깔린 환경에 설치해야 한다. 다음단계로, ipywidgets
를 ipywidget 을 사용하게 되는 각 커널의 환경에 설치해야 한다.
예를 들어, conda 환경을 사용하고, 노트북이 base
환경에 설치되어 있고, 커널은 py36
이라는 환경에 설치되어 있다고 한다면, 다음과 같이 해줘야 한다.
conda install -n base -c conda-forge widgetsnbextension
conda install -n py36 -c conda-forge ipywidgets
주피터랩 확장 설치
주피터랩 확장을 설치하려면, 아래 명령을 명령프롬프트에서 실행하면 된다. 단, nodejs 가 설치되어 있어야 한다.
예를 들어, conda 환경을 사용할 때, nodejs 를 다음 명령으로 설치할 수 있다.
conda install -c conda-forge nodejs
이후, labextension 을 설치한다.
jupyter labextension install @jupyter-widgets/jupyterlab-manager
이 명령은 최신버전의 ipywidgets 주피터랩 확장을 설치한다. 주피터랩의 버전에 따라 오래된버전이 설치될 수도 있다.
주피터랩이 실행되는 동안 확장을 설치하면, 페이지를 새로고침하거나, 주피터랩을 재시작하여야 효과가 나타날 것이다.
주의: 주피터랩 확장을 깔끔하게 재설치하려면, 먼저 jupyter lab clean
명령을 수행하여, lab 디렉토리에서 staging과 static 디렉토리를 삭제해야 한다. lab 디렉토리의 위치는 터미널에서 jupyter lab path
명령을 실행하여 알아낼 수 있다.
자주 묻는 질문 (Frequently Asked Questions)
깃헙의 Reference milestone 이슈에 보면 많은 질문, 토론, 답변들이 있다.
질문: widget을 disply 하거나, interact 하려했으나, IntSlider(value=0)
나 interactive(children=(IntSlider(value=0, description='x', max=1), Output()), _dom_classes=('widget-interact',))
과 같은 텍스트만 보인다. 무엇이 문제인가?
답변: 위젯 컨트롤을 쓸 수 없을 때, 위젯은 텍스트로 표시된다. 이런 경우는 아마 위젯 자바스크립트가 아직 로딩중이라는 뜻일 수 있다. 주피터 노트북이나 주피터랩에서 이 메시지가 지속된다면, 위젯 자바스크립트 라이브러리가 설치되지 않았거나, 활성화되지 않았다는 뜻일 수 있다. 위에 있는 설치 지시사항을 따라 설정해 보라.
기타 프론트엔드 (예를 들어, Github이나 NBViewer 의 정적랜더링) 에서 보게된다면, 프론트엔드가 현재 위젯을 지원하지 않는 것일 수 있다.
'프로그래밍 > Python' 카테고리의 다른 글
[Python] Python Profiling 관련 메모 (0) | 2019.07.11 |
---|---|
[Python] pd.to_datetime 과 datetime.fromtimestamp 의 결과가 다르다. (0) | 2019.07.11 |
[Python|Jupyter] ipywidgets 관련링크 (0) | 2019.07.02 |
[Python|Jupyter] 노트북(.ipynb)을 nbconvert 로 html 로 변환하다 UnicodeDecodeError 가 발생하였다. (0) | 2019.06.25 |
이등변직각삼각형 이등분각 무한급수 (0) | 2019.06.19 |