R의 Shiny와 유사하며 파이썬의 Dash와 유사한 도구이다.
Dash는 여러가지 문법을 익혀야 하기 때문에 사용시 다소 허들이 있는 편이다.
대시보드는 다양한 도구(Superset, Metabase, Redash, Tableau)들이 존재하지만 모두 서버에 설치 후 연동시켜야 한다.
별도의 코드 추가 없이 Notebook에서 실행할 수 있는 점이 Voila의 강점이라고 할 수 있다.
장점
pip3 install voila
jupyter serverextension enable voila --sys-prefix
voila --enable_nbextensions=True
jupyter notebook --VoilaConfiguration.enable_nbextentions=True
>>> voila
입력시 localhost:8866으로 연동이 된다.
--voila <ipynb file name> --strip_sources=False
옵션으로 소스코드까지 공개가 가능하다.
voila를 사용할때 사용하지 않는다면 종료를 해줘야 한다.
cull_interval
: idle 커널을 확인할 간격(초)cull_idle_timeout
: 커널을 idle 상태로 판단할 기준(초), 이 시간동안 이벤트가 없으면 idle로 판단voila <ipynb file> --MappingKernelManager.cull_interval=60 --MappingKernelManager.cull_idle_timeout=300
Voila 셀 timeout 설정
voila --ExecutePreprocessor.timeout=180
jupyter notebook --ExecutePreprocessor.timeout=180
으로 실행해도 voila에 영향을 준다.보안에 신경쓰기 (jupyter notebook password를 사용해 암호지정)
jupyter notebook --generate-config
(config 파일위치)import Ipython.lib import passwd
passwd()
>>> Enter password:
>>> Verify password: sha1----
from ipywidgets import interact
@interact(x=True, y=1.0)
def g(x, y):
return (x,y)