가상환경에 개발환경이 세팅된 상황에서 jupyter notebook에서 가상환경을 사용하기 위해, Jupyter Notebook에 가상환경 kernel을 추가한다.

아래와 같이 Jupyter Notebook에 가상환경 kernel을 추가해두면, Jupyter notebook을 사용중에 다른 가상환경의 노트북 파일을 생성하여 실행할 수 있다. Jupyter Notebook 실행 중에 가상환경을 전환하지 않고, Jupyter Notebook 우측 상단에 New 버튼을 선택 하여 원하는 가상환경의 노트북 파일을 생성할 수 있다. (예로, tensorflow 1.0 환경을 사용중에, tensorflow 2.0 환경으로 전환하여 작업할 수 있다.)

아래의 방법1과 방법2의 실행 결과는 동일하며, 방법2의 경우 Jupyter Notebook kernel 환경설정에 대한 이해에 도움이 되며, kernel.json에 다양한 옵션을 자유롭게 설정할 수 있다.

아래의 예는 Mac 환경의 경우이지만, Windows 환경에서도 동일한 방법으로 kernel을 추가할 수 있다. (파일의 경로와 가상환경 activate 명령이 조금 다름)


[방법1] ipykernel install 명령으로 추가하기

1. 가상환경 활성화

source activate [virtualEnv]
  • [virtualEnv]는 실제 가상환경 이름으로 변경하여 사용

    예:

    source activate pinwheel
    

2. 가상환경에 jupyter kernel 설치

pip install ipykernel

3. jupyter notebook에 가상환경 kernel 추가

python -m ipykernel install --user --name [virtualEnv] --display-name [displayKenrelName]

예:

python -m ipykernel install --user --name pinwheel --display-name venv_pinwheel

4. jupyter notebook 실행해서 kernel이 추가 됐는지 확인

jupyter notebook
  • jupyter notebook 우측 상단에 New 버튼을 선택 하여, 위에서 추가한 커널로 새로운 노트북을 생성해본다.

[방법2] kernel.json file을 직접 생성하기

1. 가상환경 활성화

source activate [virtualEnv]
  • [virtualEnv]는 실제 가상환경 이름으로 변경하여 사용

2. 가상환경에 jupyter kernel 설치

pip install ipykernel

3. 가상환경의 설정을 확인한다.

Jupyter의 설정들을 보기 위해 터미널에서 jupyter --paths를 실행한다.

jupyter --paths

출력 결과는 대충 아래와 유사할 것이다. (아래는 Mac의 경우이다.)

config:
    /Users/alex/.jupyter
    /Users/alex/venvs/pinwheel/bin/../etc/jupyter
    /usr/local/etc/jupyter
    /etc/jupyter
data:
    /Users/alex/Library/Jupyter
    /Users/alex/venvs/pinwheel/bin/../share/jupyter
    /usr/local/share/jupyter
    /usr/share/jupyter
runtime:
    /Users/alex/Library/Jupyter/runtime

출력 결과 중에 runtime:의 경로인 /Users/alex/Library/Jupyter/runtime의 바로 상위 경로인 /Users/alex/Library/Jupyter/ 아래에 /Users/alex/Library/Jupyter/kernels 경로로 이동하자. (kernels 디렉토리가 없으면 만들어준다.)

아래 명령으로 가상환경의 python 설치 경로를 확인한다.

which python

출력 결과는 대충 아래와 같을 것이다. (개인 마다 설치된 경로가 다를수 있다.)

/Users/alex/venvs/pinwheel/bin/python

4. kernel.json file 생성하기

마지막으로, /Users/alex/Library/Jupyter/kernels 경로에 kernel.json file을 하나 생성하고, 아래 내용을 추가해준다. (“argv” 인자에 위에서 확인한 가상환경의 python 설치경로를 지정해준다.)

{
 "argv": [ "/Users/alex/venvs/pinwheel/bin/python", "-m", "ipykernel",
          "-f", "{connection_file}"],
 "display_name": "venv_pinwheel",
 "language": "python"
}

jupyter notebook을 실행해서 가상환경이 추가되어 있는지 확인한다.

[참고] Jupyter Notebook에 추가된 가상환경 kernel 삭제하기

위의 “4. kernel.json file 생성하기”에서 설명한 /Users/alex/Library/Jupyter/kernels 아래에 있는 폴더 중 삭제하고자 하는 가상환경 커널의 폴더를 아래의 명령으로 삭제한다.

rm -rf <폴더명>
  • `rm -rf’ 명령은 실수로 잘못된 폴더를 삭제하지 않도록 사용 시 각별한 주의가 필요하다.