jupyter lab ์ค์น
PythonShell์ธ REPL (Read-Evaluate-Print-Loop)์ ์ฌ์ฉ
Ipython = pythonShell + ๊ฐ์ ์ (Tab Completion, Code Highlighting, Shortcut, Magic Command ๋ฑ)
==[Web Applicaiton, S/C]==> Jupyter Notebook
Jupyter Lab = Jupyter Notebook + ๊ฐ์ ์ (๋ค์ค ํญ ์ง์, ๋ค์ํ ํ์ฅ ๊ธฐ๋ฅ…)
miniconda ์ค์น
(๊ฐ์ํ๊ฒฝ์) Jupyterlab์ค์น
(Base) ~$โ conda activate sixxDL (sixxDL) ~$โ pip install jupyterlab #$ conda install -c conda-forge jupyterlab # ์ด๋ฏธ์ค์น๋์ด ์์ (sixxDL) ~$โ conda list jupyter # packages in environment at /Users/onesixx/Library/r-miniconda/envs/sixxDL: # # Name Version Build Channel jupyter-client 6.1.12 pypi_0 pypi jupyter-core 4.7.1 pypi_0 pypi jupyter-server 1.8.0 pypi_0 pypi jupyterlab 3.0.16 pypi_0 pypi jupyterlab-pygments 0.1.2 pypi_0 pypi jupyterlab-server 2.5.2 pypi_0 pypi
์คํ
(base) ~$โ conda activate sixxDL (sixxDL) ~$โ jupyter lab
Jupyter lab ์ค์ ํ์ผ
~/.jupyter/ ์๋ jupyter_lab_config.py ํ์ผ์์ฑ
~$โ jupyter lab --generate-config Writing default config to: /Users/onesixx/.jupyter/jupyter_lab_config.py ~$โ subl /Users/onesixx/.jupyter/jupyter_lab_config.py
~$โ jupyter lab --config=<์ํ๋ํจ์ค>
###### ์ธ๋ถ ์ ์ ํ์ฉ 170 #------------------------------------------------------------------------------ # ServerApp(JupyterApp) configuration #------------------------------------------------------------------------------ ... # Takes precedence over allow_origin_pat. c.ServerApp.allow_origin = '*' # Local IP addresses (such as 127.0.0.1 and ::1) are allowed as local, along # with hostnames configured in local_hostnames. c.ServerApp.allow_remote_access = True ## Whether to allow the user to run the server as root. c.ServerApp.allow_root = True #------------------------------------------------------------------------------ # ServerApp(JupyterApp) configuration #------------------------------------------------------------------------------ ... ## Specify what command to use to invoke a web browser when starting the server. # If not specified, the default browser will be determined by the `webbrowser` # standard library module, which allows setting of the BROWSER environment # variable to override it. # WHALE์ ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ๋ก ์ฌ์ฉํ๊ณ ์ถ์๋. # c.ServerApp.browser = '/Applications/Whale.app/Contents/MacOS/Whale --app=%s' c.ServerApp.browser = '/Applications/Whale.app/Contents/MacOS/Whale %s' ####### start whale http://onesixx.com # /Applications/Whale.app/Contents/MacOS/Whale --app=http://onesixx.com # "C:\Program Files (x86)\Naver\Naver Whale\Application\whale.exe" # /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --app=http://onesixx.com ###### ip:port 315 ## The IP address the Jupyter server will listen on. c.ServerApp.ip = 'localhost' ## The port the server will listen on (env: JUPYTER_PORT). c.ServerApp.port = 7777 ###### ๋ธ๋ผ์ฐ์ ์๋ ๊ตฌ๋ (default browser false) 377 ## Whether to open in a browser after starting. The specific browser used is # platform dependent and determined by the python standard library `webbrowser` # module, unless it is overridden using the --browser (ServerApp.browser) # configuration option. #c.ServerApp.open_browser = False ###### ํ ํฐ ์ ๋ ฅ c.ServerApp.token = ''
#$ jupyter lab --ip=0.0.0.0 --port=7777 & $ jupyter lab &
$ kill $(ps aux |grep jupyter | awk '{print $2}')
ํ๊ฒฝ์ค์
Code์ ๊ธ์ํฌ๊ธฐ ๋ณ๊ฒฝ
๊ฐ์ํ๊ฒฝ ์ ํ
Jupyter lab์ ๊ฐ์ํ๊ฒฝ Kernel ์ฐ๊ฒฐํ๊ธฐ
conda install ipykernel
python -m ipykernel install –user –name <๊ฐ์ํ๊ฒฝ๋ช > [–display-name “VirtualEnvforPy”]
python -m ipykernel install --user --name Torch --display-name "Torch"
conda remove๋ก ๊ฐ์ํ๊ฒฝ์ ์ญ์ ํด์ kernel์ ๋จ๋๋ค.
conda remove –name <์ปค๋๋ช
> –all
jupyter kernelspec list # ์ปค๋์คํ๋ชฉ๋ก์์ ์ญ์ ํ ์ปค๋๋ช
ํ์ธ
jupyter kernelspec uninstall <์ปค๋๋ช
>
์ ์ฉํ Extension
Extension ๊ธฐ๋ฅ์ใด nodejs๊ฐ ์ค์น๋์ด ์์ด์ผ ํ๋ค.
Mac
$ brew install node
Ubuntu
$ sudo apt install nodejs
$ sudo apt install npm
$ node -v
โ v10.19.0 (๋ฒ์ ํ์ธ)
$ sudo npm cache clean -f
โ cache ์ญ์
$ sudo npm install -g n
โ nodejs ๋ฒ์ ๊ด๋ฆฌ ํ๋ฌ๊ทธ์ธ (n) ์ค์น
$ sudo n lts
โ nodejs์ LTS ๋ฒ์ (v14.17.0) ์ค์น , n stable, n latest ๋ช ๋ น์ด๋ก ์ํ๋ ๋ฒ์ ์ค์น ๊ฐ๋ฅ
nodejs์ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ ํ์๋ Jupyter Lab Extenstion์ ์ผ์ชฝ ์ฌ์ด๋๋ฐ์ ํ๋จ Extension ์์ด์ฝ์ ์ ํ ํ Extension ๊ฒ์ ๋ฉ๋ด๋ฅผ ํตํด์ ์ค์นํ ์ ์์ต๋๋ค.
Server Extension์ด ํ์ํ ๊ฒฝ์ฐ ์๋ฒ์์ ์ค์นํ๋ฉด ๊ตฌ๋์ด ๊ฐ๋ฅํฉ๋๋ค.
1. Git ์ฐ๋ @jupyterlab/git
git ์ฐ๋, branch๊ด๋ฆฌ ๋ฑ. ์ผ์ชฝ ์ฌ์ด๋ ๋ฉ๋ด์ Git ๋ฉ๋ด ์ถ๊ฐ๋จ
์ค์น ๋ช
๋ น์ด:
$ sudo pip3 install jupyterlab-git
(sixxDL) ~$โ pip install –upgrade jupyterlab jupyterlab-git
(sixxDL) ~$โ conda install -c conda-forge jupyterlab jupyterlab-git
2. Table of content ์์ฑ @jupyterlab/toc-extension
md ํ์ผ์ ๋ํ ๋ชฉ์ฐจ ์์ฑ JupyterLab < 3.0 ์ดํ ๋ฒ์ ์์๋ ์๋ extension ์ค์นํด์ผ ํ๊ณ , 3.0 ์ด์ ๋ฒ์ ์ JupyterLab core์ ์ด๋ฏธ ํฌํจ๋์ด ์์
์ค์น ๋ช
๋ น์ด:
$ sudo jupyter labextension install @jupyterlab/toc
3. Go To Definition ๊ธฐ๋ฅ @krassowski/jupyterlab_go_to_definition
Alt + click to jump to a definition
Ctrl + Alt + B keyboard-only
์ค์น ๋ช
๋ น์ด
$ sudo jupyter labextension install @krassowski/jupyterlab_go_to_definition
4. Audo Complete @krassowski/jupyterlab-lsp
Code ์๋ ์์ฑ
์ค์น ๋ช
๋ น์ด:
$ sudo pip3 install jupyterlab-lsp
์ ์ฉํ extension ์๊ฐ
awesome jupyter (jupyter extensions ์๊ฐ)
extension ์ค์น๋ฐฉ๋ฒ
jupyterlab extension์ ์ค์นํ๊ธฐ ์ํด์๋ nodejs๊ฐ ํ์๋ก ์ค์น๋์ด ์์ด์ผ ํ๋ค.
์ฐธ๊ณ : How to Install Node.js and npm on Ubuntu 20.04 & 18.04
CLI๋ฅผ ํตํ ์ค์น
jupyter labextension install [ extension ๋ช ]
JupyterLab์์ ์ค์น
Settings ์ค์ ์ ํด์ฃผ๋ฉด, ์ํ๋ extension์ ๊ฒ์ํด์ ๊ฐ๋จํ ์ค์นํ ์ ์๋ค.
0. ์ผ๋ฐ์ ์ธ ์ฉ๋์ extension
extension ๋ช | ์ค ๋ช |
---|---|
jupyter-widgets/jupyterlab-manager | ipywidget ์คํ์ ์ํ extension |
jupyterlab/jupyterlab-toc | table of contents ๊ธฐ๋ฅ์ ์ํ extension |
krassowski/jupyterlab-go-to-definition | go to definition ๊ธฐ๋ฅ์ ์ํ extension |
dnanhkhoa/nb_black | black formatter ์๋์ ์ฉ์ ์ํ extension |
kiteco/jupyterlab-kite | Kite Autocomplete Extension for JupyterLab |
hadim/jupyter-archive | ์์ ์ค์ธ ํด๋ ๋ค์ด๋ก๋(zip) ๊ธฐ๋ฅ์ ์ํ extension |
0-1. jupyterlab-execute-time
github.com/deshaw/jupyterlab-execute-time
1.0.0 ๊ธฐ์ค
์ ์ ์คํํ ์๊ฐ๊ณผ ๊ฒฝ๊ณผํ ์๊ฐ์ ํ์ธํ ์ ์๋ค. ์ค์น ํ settings์์ recordTiming์ true๋ก ์ค์ ํด์ผ ํ๋ค.
1. jupyterlab-system-monitor
github.com/jtpio/jupyterlab-system-monitor
0.4.1 ๊ธฐ์ค
jupyterlab์์ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ์ธํ ์ ์๋ค. ๊ทธ๋ฅ ์ค์น๋ง ํ๋ฉด ๋จ์ ์ฌ์ฉ๋๋ง ์ซ์๋ก ํ์ธ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ํ๋ฅผ ๋ณด๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ฆ ์ ํ์ ์ค์ ํด์ผ ํ๋ค. ํ์ฌ, ์ค์ ๋ก ์๋ํ์ง๋ ์๋๋ค. ๊ทธ๋ฅ ์์์ ์ค์ ๊ฐ์ผ ๋ฟ์ด๋ค.
jupyter_notebook_config.py์ ์๋ ๋ถ๋ถ์ ์ถ๊ฐํ๋ฉด ๋๋ค.
( config๋ฅผ ๊ทธ๋์ ์ฌ์ฉํ์ง ์์๋ค๋ฉด jupyter lab โgenerate-config๋ก ๋จผ์ ์์ฑํ๋ค. )
๊ธฐ๋ณธ๊ฐ์ผ๋ก 5์ด(5000ms)๋ง๋ค ํ ๋ฒ์ฉ ์ ๋ฐ์ดํธ ๋๋๋ฐ Settings์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค.
#----------------------------------------------------------- # NotebookApp(JupyterApp) configuration #---------------------------------------------------------- c.NotebookApp.ResourceUseDisplay.mem_limit= (Size Of GB) *1024*1024*1024
์ฐธ๊ณ : open_browser=True (default option) ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๋ธ๋ผ์ฐ์ ์คํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํฌํจ๋ ์ ์๋ค.
2. jupyterlab-googledrive
github.com/jupyterlab/jupyterlab-google-drive
1.0 ๊ธฐ์ค
๊ตฌ๊ธ ๋๋ผ์ด๋ธ์ ํ์ผ ์ ๋ก๋ ๋ฐ ์์ ์ด ๊ฐ๋ฅํ๋๋ก ํด์ค๋ค. ๋ ธํธ๋ถ ํ์ผ์ ํด๋ผ์ฐ๋์์ ๊ด๋ฆฌํ๋ ์ฉ๋๋ก ์ ์ฉํ๋ค.
์๋ Post์์ ์ค์น ํ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ์ ํ์ธํ ์ ์๋ค.
Post – JupyterLab๊ณผ GoogleDrive ์ฐ๋ํ๊ธฐ
3. nbdime – Diff and Merge tool
Notebook ํ์ผ๋ก Diff and Merge ๊ธฐ๋ฅ์ ์ ๊ณตํด์ค๋ค.
2.0.0 ๊ธฐ์ค
pip install nbdime jupyter serverextension enable --py nbdime jupyter labextension install nbdime-jupyterlab
- nbdiff ๋ช ๋ น์ด๋ก ์์ ํ ๋ด์ฉ์ ํ์ธ ๊ฐ๋ฅ
- git repo๋ฅผ ์ฌ์ฉํ๋ฉด git์ ์ ๋ณด์ ํ์ฌ ์ ์ฅํ ๋ ธํธ๋ถ์ ๋น๊ต ๊ฐ๋ฅ
์ฐธ๊ณ : Working with nbdime – in JupyterLab Quick Start Guide
4. jupyterlab-github
github.com/jupyterlab/jupyterlab-github
1.0 ๊ธฐ์ค
github์ ์ฌ๋ฆฐ ๋ ธํธ๋ถ ํ์ผ์ ์ฐธ๊ณ ํ๋ ์ฉ๋๋ก ์ ํฉํ๋ค. github์ ์ ๋ก๋ ๋ ํ์ผ์ ์ฝ์ ์ ์๋ค. ๋จ, ์์ ํ๊ฑฐ๋ ์ ๋ก๋๋ ๋ถ๊ฐํ๋ค.
๋ก์ปฌ ๋ ธํธ๋ถ์ผ๋ก ์ ์ ๋ณต์ฌํ๊ณ ๋ถ์ฌ๋ฃ๊ธฐ๋ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ฆ ์ ์ฉํ๋ค.
USER ๋ช /repo ๋ช ์ผ๋ก ๊ฒ์ ๊ฐ๋ฅํ๋ค.
5. lckr/jupyterlab_variableinspector
github.com/lckr/jupyterlab-variableInspector
0.3 ๊ธฐ์ค
jupyter labextension install @lckr/jupyterlab_variableinspector
RStudio์ฒ๋ผ inspector ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๊ณ ํ๋ extension์ด๋ค. ํด์งํต ์์ด์ฝ์ผ๋ก ๋ณ์ ์ญ์ ๋ฅผ ํ ์๋ ์๋ค.
Name์ ํด๋ฆญํ๋ฉด array๋ dataframe์ value๋ฅผ ํ ์ด๋ธ ํํ๋ก ํ์ธํ ์๋ ์๋ค.
์ฌ์ฉ๋ฐฉ๋ฒ : ๋ ธํธ๋ถ ํ์ผ ๋น ๊ณต๊ฐ์์ ์ฐํด๋ฆญ ํ Open Variable Inspector๋ฅผ ์คํํ๋ฉด ์๋ก ์ฐฝ์ด ๋ํ๋๋ค.
6. pbugnion/jupyterlab-sql
github.com/pbugnion/jupyterlab-sql
0.3.1 ๊ธฐ์ค ์ค์น๋ฐฉ๋ฒ
pip install jupyterlab_sql jupyter serverextension enable jupyterlab_sql --py --sys-prefix jupyter lab build # PostgreSQL ์ฐ๊ฒฐ์ ์ํ psycopg2 ์ค์น pip install psycopg2-binary # MySQL ์ฐ๊ฒฐ์ ์ํ pymysql ์ค์น pip install PyMySQL pip install cryptography
์ค์น ํ ์ฌ์คํํ๋ฉด SQL ์์ด์ฝ์ ์ ํํ ์ ์๊ณ ์ฐ๊ฒฐํ DB ์ ๋ณด๋ฅผ ์ ๋ ฅํ๋ค.
PostgreSQL - postgres://user:password@ip:port/database MySQL - mysql+pymysql://user:password@ip:port/database
์ฐ๊ฒฐํ๋ฉด DB์ ํ ์ด๋ธ์ด ๋ณด์ด๊ณ ๋๋ธํด๋ฆญํ๋ฉด 1000๊ฐ๊น์ง์ row๋ฅผ ํ์ธํ ์์๋ค.
Custom SQL query๋ฅผ ํด๋ฆญํ์ฌ ์ฟผ๋ฆฌ๋ฌธ์ ์ ๋ ฅํ๋ฉด(Ctrl+Enter) ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ์ ์๋ค.
๋ฐ์ดํฐ ๋ณต์ฌ ๋ฑ์ ์ถ๊ฐ๊ธฐ๋ฅ์ ํ์ฌ ์๋ค.
DB์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋จํ ํ์ธํ ์ ์๋ ์ ๋์ธ ๊ฒ ๊ฐ๋ค. ๋ ธํธ๋ถ ํ์ผ์์ ํ์ฉ๋๋ ipython-sql์ด ์์ง์ ๋ ์ ์ฉํด๋ณด์ธ๋ค.