[Python] 주피터(Jupyter) 노트북에서 가상환경 연결

    필자는 아나콘다(Anaconda)를 선호하기 때문에 가상환경도 폴더 형태로 만들지 않고 아나콘다에서 가상환경을 생성하여 연결하는 것을 선호한다. 이 포스팅은 새로운 아나콘다 가상환경 상태에서 주피터를 연결하는 방법을 진행하려 한다. 물론 이 방식은 아나콘다 가상환경이 아니라 폴더별 가상환경도 설정이 가능하니 본인의 상황에 맞게 환경을 추가하면 될 것이다.

     

    New를 할 때, Python 3만 존재

     

    주피터로 새로운 notebook을 만드려고 하지만, 가상환경을 설정하는 메뉴가 존재하지 않는다.

     

    커널에서 python 3만 존재

    일단 Python 3로 생성 후, Kernel 메뉴에서 Change Kernel을 하지만 보다시피 주피터에서 다른 가상환경을 못불러들이고 있다. 필자는 주피터로 코딩을 하는 것을 좋아하지 않기 때문에 사실 필요성을 못느꼈지만 최근 내부 공유자료를 만들기 위해서 주피터로 작업하려 하다가 별도의 작업이 필요하다는 것을 뒤늦게 알게 되었다.

     

    conda info --envs
    # conda environments:
    #
    base                     C:\Anaconda3
    python                   C:\Anaconda3\envs\python
    tts                   *  C:\Anaconda3\envs\tts

    현재 필자의 envs를 보면 tts라는 가상환경이 있는데 이 가상환경을 연결해보도록 한다.

     

    pip install jupyter

    우선 새로운 가상환경 상태에서 jupyter를 설치한다. jupyter를 설치하면, ipykernel도 설치가 될 것이다. 주피터를 설치하지 않고 ipykernel만 설치해서 되는지는 테스트해보지 않았으니 혹시나 ipykernel만 해도 되는지는 별도로 진행하면 될 것 같다.

     

    python -m ipykernel install --user --name 가상환경 --display-name 커널명

    위는 커널을 생성하는 명령어인데 가상환경은 연결해야 될 가상환경명칭과 커널명은 주피터에서 보여질 명칭이라 생각하면 된다.

     

    가상환경과 커널명을 동일하게 생성한 예제

    (tts) C:\project\tts\source\python>python -m ipykernel install --user --name tts --display-name tts
    Installed kernelspec tts in C:\Users\Steel Stark\AppData\Roaming\jupyter\kernels\tts

     

     

    위와 같은 메세지가 나왔으면 커널 생성이 성공한 것이다.

     

    tts 커널 추가

     

    위와 같이 주피터 Kernel 메뉴의 change kernel에서 기존의 Python 3 뿐만 아니라 tts도 선택할 수 있는 것을 알 수 있다.

     

    File에서 커널 추가 화면

     

    마찬가지로 File 메뉴에서 New Notebook을 할 때 tts라는 것을 선택할 수 있게 되었다. 커널이 추가된 것을 확인했다면 둘의 환경이 정말로 다른지 연동되었는지 확인해보도록 한다.

     

    연동 확인 테스트

    커널만 생성되었고 연동이 안될수도 있기 때문에 새로운 가상환경에서만 설치되어 있는 라이브러리를 호출해보기로 한다.

     

    원래 발생하는 에러

     

    위 스크린 샷처럼 이와 같이 해당 라이브러리가 설치가 안되어 있는 상태를 확인할 수 있다. 그러면 이 상황에서 커널을 변경한 후 다시 Run을 해보도록 한다.

     

    kernel이 변경된 스샷

     

    커널을 해당 라이브러리가 설치된 가상환경으로 변경하니 위와 같이 에러가 발생하지 않고 정상적으로 잘된 것을 확인할 수 있다. 

     

     

     

     

    댓글

    Designed by JB FACTORY