Computer Science/Jupyter

[Jupyter] Jupyter에서 다중 커널 이용하기 (Kernel)

2021. 3. 5. 17:40

(참고) Jupyter 실행과 관련해서는 아래 글을 확인하자
2021/02/08 - [Computer Science/Jupyter] - [Jupyter] 서버 환경에서 주피터 (Jupyter lab) 실행 및 연결
 
 
  Jupyter에서 사용되는 커널(Kernel)은 프로그램 실행환경으로 이해하면 된다. Jupyter를 계속 실행시켜둔 채로도 우리는 커널을 바꿔가며 다양한 가상환경을 사용할 수 있는 장점이 있다. 이를 위해서는 먼저 다른 가상환경을 커널 리스트에 넣어주어야 한다.
 

Python kernel 추가

먼저 conda 가상환경 리스트는 아래 명령어를 통해 확인할 수 있다.

conda env list
> jupyter-env              /user/bin/miniconda2/envs/jupyter-env
> qiime2-2020.8            /user/bin/miniconda2/envs/qiime2-2020.8

 
이때 qiime2-2020.8 가상환경을 커널 리스트에 넣어주기 위해서는 다음과 같이 진행하면 된다.

# conda create --name qiime2-2020.8 python=3.9
conda activate qiime2-2020.8
# conda install ipykernel
python -m ipykernel install --user --name qiime2-2020.8 --display-name QIIME2

 
참고로 현재 존재하는 커널의 리스트 및 삭제는 다음의 명령어를 통해 가능하다.

jupyter kernelspec list # Kernel list 확인

jupyter kernelspec uninstall qiime2-2020.8 # Kernel 제거

 

해당 커널을 사용하기 위해서 Jupyter를 실행시켜보자.

conda deactivate # deactivate qiime2-2020.8
conda activate jupyter-env # activate jupyter-env
jupyter lab

오른쪽 상단에 Kernel을 선택할 수 있는 버튼이 있는데,

누르면 다음과 같이 새로 추가된 커널 (QIIME2)를 확인할 수 있다.

 
위 방법으로 qiime2-2020.8 가상환경을 쓰기 위해 매번 가상환경을 다시 실행시킬 필요 없이, 커널만 바꿔주면 간단히 사용 가능하다.
 

참고 사항

만든 kernel의 정보를 확인해볼 수 있다.
 
아래 명령어를 통해 kernel이 저장된 경로를 확인할 수 있다. 참고로 해당 폴더를 다른 사용자의 커널이 저장된 위치에 복사해서 옮겨주면 그 사용자도 같은 커널을 사용할 수 있다.

>> jupyter kernelspec list # Kernel list 확인

Available kernels:
  qiime2-2021.2    /home/user/.local/share/jupyter/kernels/qiime2-2020.8

 
해당 폴더에 들어있는 kernel.json 파일을 vim으로 확인해보면 다음과 같다.

>> vi .local/share/jupyter/kernels/qiime2-2020.8/kernel.json

{
 "argv": [
  "/usr/bin/miniconda2/envs/qiime2-2020.8/bin/python",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "display_name": "QIIME2",
 "language": "python"
}

기본 실행환경이 qiime2-2020.8 환경의 python임을 확인할 수 있다.
 

R kernel 추가

$ conda activate qiime2-2020.8
# (qiime2-2020.8) $ conda install -c conda-forge r-irkernel r r-essentials r-base pkg-config
(qiime2-2020.8) $ R -e "IRkernel::installspec(name='qiime2-r', displayname='QIIME2-R')" #[4]

 

Bash kernel 추가

$ conda activate qiime2-2020.8
# (qiime2-2020.8) $ pip install bash_kernel
(qiime2-2020.8) $ python -m bash_kernel.install

 
 

Reference

  1. yahwang.github.io/posts/42
  2. stackoverflow.com/questions/52370092/what-is-a-kernel-in-jupyter-notebook-and-how-it-is-different-similar-to-actual-k
  3. stackoverflow.com/questions/37890898/how-to-set-env-variable-in-jupyter-notebook
  4. stackoverflow.com/questions/63196684/is-it-possible-to-create-an-r-conda-environment-from-an-existing-version-of-r

 

728x90
반응형