Python

jupyter notebook 실행시 conda env가 보이지 않을때

willbsoon 2021. 6. 16. 16:50

1. 서론

최근 nipa 서버를 사용하게 되면서 jupyter notebook을 자주 사용하게 되는데

툴을 사용하다보면 툴만 따로 공부해야 할 정도로 기능도 많아지고 복잡해지는 것 같다는 생각이 든다.

 

그러는 중에 nipa 서버가 아닌 회사 gpu 서버를 통해 챗봇을 구현하려는데

jupyter notebook을 사용해 간단하게 작업하려고 했는데 패키지를 읽어오지 못하는 상황에 생겨버렸다...

 

이 무슨... 

왜그런가 찾다보니 jupyter 가 conda env를 읽지 못하는 상황이었던 것이다.

nipa 서버는 이걸 해주셔서 내가 몰라도 되었었지만... 회사 서버에는 내가 직접 설치를 해야하는구나..

 

역시 남이 해주는게 편하지.. 내가 하는 건 쉽지가 않다...ㅠㅠ

 

그렇다면 이걸 어떻게 설치하는지 살펴보자!

 

2. 본론

1) conda env 만들기

$ conda create -n kochat python=3.8 
# 파이썬 3.8 버젼의 kochat이라는 env를 만든다.

해당 명령어로 kochat이라는 가상환경을 만든다.

 

 2) jupyter notebook 에서 사용가능한 패키지 확인

jupyter-notebook을 처음 설치하였다면 사실 env는 하나일것이다. 아래 명령어를 통해서 확인해보자.

$ jupyter kernelspec list
Available kernels:
  python3    /home/ubuntu/anaconda3/share/jupyter/kernels/python3

보니깐 python3 이거 하나밖에 없다...

내가 설치해놓은 패키지를 하나도 쓰지 못하는 상황...

 

그럼 이것을 어떻게 해결할 것인가??

jupyter notebook과 아나콘다 env를 연결시켜줄 패키지를 설치하자.

 

 

 3) nb_conda 설치하기

ipykernel과 nb_conda를 설치하면 간단하게 해결 가능하다. 모르면 절대 할수 없지만 알면 정말 간단한 작업..

 

$ source activate kochat	# 노트북에 등록하고자 하는 가상환경에 들어간다.
$ conda install ipykernel

 한줄이면 많은 패키지들이 다운될 것이다.

 

 4) conda env를 jupyter notebook에 설치하기

패키지를 다운 받았으니 저걸 jupyter notebook에 설치해야 사용할수 잇을 것이다.

먼저 conda에 어떤 env가 있는지 확인해본다.

 

$ conda env list
# conda environments:
#
base                     /home/ubuntu/anaconda3
cluster_env              /home/ubuntu/anaconda3/envs/cluster_env
drqa_env                 /home/ubuntu/anaconda3/envs/drqa_env
kochat                *  /home/ubuntu/anaconda3/envs/kochat
projects                 /home/ubuntu/anaconda3/envs/projects
py_20200602              /home/ubuntu/anaconda3/envs/py_20200602

 여러가지 env가 있는 것을 확인할수 있다. 이중에 jupyter notebook에 연결할 env를 골라서 다음 명령어를 실행한다.

 

$ python -m ipykernel install --user --name kochat --display-name "Python 3.7(kochat)"
# kochat 이란 env를 jupyter notebook에 설치할 것이고 보여질 이름은 Python 3.7(kochat) 로 설정한다는 의미

 

이렇게 할수 있다.

 

그러면 이제 확인해봐야겟지요?

 

이와같이 설치되는 것을 볼 수 있다.

 

 

 

 

**********

근데 만들어놓은 가상환경에 연결되지 않고 .local 폴더 밑에 연결되어지는 경우가 있다.

document를 보더라도 아래와 같이 설명하고있다.

Note that this command will create a new configuration for the kernel in one of the preferred location (see jupyter --paths command for more details):

system-wide (e.g. /usr/local/share),
in Jupyter’s env (sys.prefix/share),
per-user (~/.local/share or ~/Library/share)

If you want to edit the kernelspec before installing it, you can do so in two steps. First, ask IPython to write its spec to a temporary location:
ipython kernel install --prefix /tmp

--prefix 밑에 가상환경이 연결되어진다고 한다.

그래서 가상환경과 제대로 연결되지 않을경우 아래와 같이 입력하자.

python -m ipykernel install --prefix=/home/ubuntu/anaconda3/envs/tf2_nlp_study --name 'tf2_nlp_study'

가상환경으로 루트를 설정하게되면 제대로 연결되어질것이다.

 

3. 결론

 

잊어버리지 않기 위함도 있지만 이걸 보고 많은 분들에게도 도움 됬으면 좋겠네요~

 

 

참고 : ipython.readthedocs.io/en/stable/install/kernel_install.html

 

 

 

##########################################

다중커널...

 

bryan7.tistory.com/719

 

jupyter 다중 커널(kernel) 설치하기

$ jupyter kernelspec install-self [InstallNativeKernelSpec] Installed kernelspec python2 in /usr/local/share/jupyter/kernels/python2 HOW TO INSTALL R KERNEL FOR IPYTHON JUPYTER ON MAC OSX YOSEMITE h..

bryan7.tistory.com

 

 

센트os와 우분투는 다른지... 잘안됨..ㅠ

그래서 다중커널 설치와 관련된 내용 가져옴.