2019년 1월 24일 목요일

SSH로 Ipython jupyter notebook 설치 및 설정



우분투 서버에 jupyter를 설치하고 수정하는 과정이 여기저기 분산되어 있어서 설치하는 과정을 한 군데 모아보았다.

우선 ipython 및 jupyter 설치
pip install --upgrade pip
pip install ipython
python -m pip install jupyter
jupyter notebook
까지 입력하면 로컬에서 사용가능한 jupyter가 설치 완료된다.



이제 원격에서 접근 가능한 jupyter로 만들어보자

cntl + c 로 위 프로세스를 종료하고,
패스워드를 입력하는 방식으로 하기 위해 아래 명령어를 통해 프로파일을 생성한다.
jupyter notebook --generate-config
입력하면 ./jupyter 디렉토리와 jupyter_notebook_config.py 가 생성된다.
ipython 을 실행시킨 후 아래 명령어를 순서대로 입력하고 원하는 패스워드를 입력. 생성된 해시는 따로 복사해둬야 함 (종료 시 cntl+d)

v2022.10.19

아래 작성한 과거 버전의 jupyter notebook 사용법을 따라가다 보면 아래와 같은 에러가 나온다.

ImportError: cannot import name 'passwd' from 'IPython.lib'

이는 Ipython 버전이 8.x로 업데이트 되면서 password 입력방식이 달라졌기 때문이다.


새로운 설치방법은 더욱 간결해졌다.

우선 기본 커맨드 창에서 아래 명령을 입력하고, 원하는 패스워드를 입력한다.

jupyter notebook password
올바르게 입력하면 아래와 같은 문구가 뜬다.
[NotebookPasswordApp] Wrote hashed password to /home/USER/.jupyter/jupyter_notebook_config.json

해당 파일에 생성된 해시태그 비밀번호를 복사한다.


vim ~/.jupyter/jupyter_notebook_config.json  <- 여기에서 "password" : "argon2:~~" 복사
vim ~/.jupyter/jupyter_notebook_config.py <- 여기에서 붙여넣기

vi/vim 으로 jupyter_notebook_config.py 파일을 수정한다.
해당 파일에 아래 5줄의 내용을 붙여넣고 password 부분에 방금 생성된 해시 값을 붙여넣는다. 해당 파일이 모두 주석처리 되어 있기 때문에 아무데나 복붙.

c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 32123                #원하는 포트를 넣으세요
c.NotebookApp.password = 'sha~~~~'   #<-여기에 복사한 값 복붙



v2019.01.25 (과거 버전)

from IPython.lib import passwd
passwd()
Enter password:
Verify password:
Out[2]: 'sha~~~~'


vi/vim 으로 jupyter_notebook_config.py 파일을 수정한다.
해당 파일에 아래 5줄의 내용을 붙여넣고 password 부분에 방금 생성된 해시 값을 붙여넣는다. 해당 파일이 모두 주석처리 되어 있기 때문에 아무데나 복붙.

c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 32123                #원하는 포트를 넣으세요
c.NotebookApp.password = 'sha~~~~'   #out[2] 값 복붙

저장 후
jupyter notebook 으로 실행하면 된다.
위에서 포트와 아이피 등을 설정해주었기 때문에 옵션을 따로 넣어주지 않아도 된다.



참조:
https://jupyter.org/install.html
https://financedata.github.io/posts/jupyter-notebook-authentication.html
https://cyan91.tistory.com/49

댓글 1개: