Programming

jupyter notebook ipynb kernel에 anaconda 가상환경 연결하기

stein 2021. 6. 20. 18:45

 ML 과제를 해결할 때, GPU 자원을 다른 사람들과 나누어 써야하는 일이 종종 있다. 보통 jupyter lab(notebook)을 사용해서 협업할 수 있는 환경을 구축하고, anaconda의 가상환경을 만들어 서로의 작업에 영향을 미치지 않도록 한다. 이 때, anaconda의 가상환경을 jupyter notebook의 ipynb kernel에 연결하여야, terminal에서만 접근가능했던 가상환경 세팅이 .ipynb에서 사용가능하다.

(*참고* 만약 다른 사람과 협업을 하는 상황이 아니라면, 원하는 가상환경으로 activate한 후에, jupyter notebook(lab)을 실행하고 접근하면 된다)


기본 연결 방법

1. 가상환경 생성

conda create -n {가상환경 이름} python =파이썬 버전

 

2. 해당 가상환경으로 activate
conda activate {가상환경 이름}

 

3. ipykernel 설치
conda install ipykernel

 

4. ipykernel install (필자가 문제를 겪은 부분)
python -m ipykernel install --user --name {가상환경 이름} --display-name "{표시할 이름}"


위의 방식대로 진행했을 때 문제가 있었다. base로 activate된 상태의 jupyter lab의 ipynb에서는 새로 생성한 env-kernel을 찾지 못하는 것이었다. conda activate를 변경후 jupyter를 재시작하면 되겠지만, 다른 사람들과 함께 사용하여야 하기 때문에 base로 activate된 jupyter notebook에서 다른 env의 kernel을 가져와야 했다.


base에서 activate한 jupyter에서 다른 env kernel 연결 방법

1. 기본 연결 방법 1~3을 동일하게 진행

 

2. ipykernel install (변경된 부분)

python -m ipykernel install --prefix=/home/user/anaconda3/ --name '표시할 이름'

# /home/user/anaconda3/은 base 가상환경의 기본 경로이다. 

# 윈도우의 경우 (설치 경로에 따라 다르겠지만) C:\\Users\\[사용자 이름]\\anaconda3\\ 을 경로로 사용하면 된다

3. base환경으로 activate

conda activate base

 

4. kernel이 제대로 추가되었는지 확인

jupyter kernelspec list

 

5. 브라우저 새로고침 후, ipynb의 우측상단에서 kernel을 선택 후, 정상작동 확인

 

** 윈도우에서 실행한 화면 예시

2번을 실행 뒤
잘 추가 된 모습을 볼 수 있다.

 


이유에 관한 고찰

1. ipynbkernel install은 해당 명령이 실행되는 env에 영향을 받는다

2. 기본적인 방법으로 실행해버리면 해당 env 경로에 kernel이 설치되기 때문에 다른 env(base)에서 확인할 수 없다.

3. 따라서 원하는 env로 activate 후, 다른 env(base)의 경로에 설치되도록 수동으로 설치해야한다.


참고

1. 공식 문서: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-python-2-and-3

 

2. 해당 작업과 관련해서, 알아두면 좋은 명령어들

 

가상환경 리스트 확인
conda env list

가상환경 제거
conda remove --name {envname} --all
jupyter kernelspec uninstall 가상환경이름