상세 컨텐츠

본문 제목

[tip] jupyter notebook kernel 여러개 만들기

Tips

by 힐둔 2022. 1. 12. 00:17

본문

주피터 노트북에서 kernel을 여러개 만드는 방법이다. 주피터 노트북에서의 커널은 우리가 알고 있는 그런 커널이 아니다. 주피터 노트북 application을 실행하기 위한 실행 환경이라고 생각하면 될 것 같다. 아시다시피 주피터 노트북에서는 여러 언어 (파이썬, R 등)를 작성할 수 있는데, 이것은 각각의 주피터 application과 그 application을 동작하게 하기 위한 환경 (kernel)이 각각 연결 되어 있기 때문에 가능하다. 

 

만약 주피터 노트북에서 하나의 환경만 사용한다면 구지 kernel을 추가할 필요는 없다. 기본적으로 ipykernel 은 지원하고 있다. 

 

https://docs.jupyter.org/en/latest/projects/architecture/content-architecture.html

 


 

커널을 추가 하게 되면 우리는 주피터 노트북의 홈에서 커널을 선택할 수 있다. 명시적으로 선택할 수 있기 때문에 자신의 환경을 쉽게 확인할 수 있고,  kernel switching도 쉽게 된다.

 

conda 명령으로 가상환경을 설정한 경우를 보자. 아래는 tensorflow용과 pytorch용 가상환경이 생성된 경우이다. conda를 모른다면 여기여기를 참고 해보자.  

 

kernel을 추가 하는 방법은 다음과 같다.

  1. conda install ipykernel
  2. 추가하고 싶은 가상환경 Activation (conda activate 가상환경이름)
  3. kernel 추가
    python -m ipykernel install --user --name pytorch_p39_cuda113--display-name "pytorch_p39_cuda113"
    python -m ipykernel install --user --name 가상환경이름 --display-name "표시하고 싶은 이름"

주피터 노트북 kernel 추가

 

jupyter kernelspc list를 이용해서 추가한 kernel을 확인할 수 있다. 그리고 jupyter kernelspec remove 가상환경이름 으로 삭제할 수 있다. 추가/삭제 시 jupyter notebook을 재실행 해줘야 관련 내용을 확인할 수 있다.

 

음, 작성하다 보니 한가지 의문점이 생겼다. 난 경험 상 추가하는게 편해서 추가하긴 했는데, 만약 추가하지 않고 여러 가상환경을 실행 시킬 수 있으려나? 각각 conda 가상환경을 activation 시킨 후에 각각 jupyter notebook을 실행해야 하나? 포트를 각각 다르게 설정해서 ? 

 

혹시 아시는 분이 있거나 제가 다르게 이해하고 있는게 있다면 주저하시지 말고 댓글 달아주세요.

 

2022/01/17 update : 아래와 같은 방법으로 각기 다른 환경의 주피터 노트북을 여러개 실행 시킬 수 있다.

1) 여러 환경에 대한 커널을 모두 추가하고, 주피터 노트북을 하나만 실행 시켜서 kernel switching

2) 각각의 환경에서 각각 주피터 노트북 실행
    (명시적으로 포트를 지정해도 되고, 묵시적으로 포트를 생략해도 자동으로 새로운 포트로 실행 시켜줌)

2022.01.12 - [분류 전체보기] - [tip] jupyter notebook 여러 개 실행하기

 

관련글 더보기

댓글 영역