jupyter notebook에 python 버전별로 바꿔가며 사용할 일이 생겼는데
찾아보니 kernel 이라 부르고 손쉽게 추가가 가능하다
물론 buster 에서 말이다 release 10 이하라면 jupyter 설치부터 난관이니 추천하지 않는다
pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: python2 /home/pi/.local/lib/python2.7/site-packages/ipykernel/resources python3 /usr/local/share/jupyter/kernels/python3 |
jupyter notebook 을 설치하고 커널 리스트를 보면 2개가 보이는데
jupyter notebook에 기본 python3 만 보인다
python2 도 설치되 있으니 추가해 보기로 했다
거기에 가상화 해둔 python2 & python3 도 말이다
결과화면
별차이 없지만 가상화와 아닌게 구분되있다
ipykernel을 설치하고 ipykernel install 을 해주면 되는듯 하다
python -m pip install ipykernel
python -m ipykernel install --user
ipykernel 이 설치되있는지는
pip list | grep ipykernel 로 확인 가능하다
jupyter kernelspec list
python 버전별 가상화
가상화는 virtualenv 가 설치되 있어야 된다
다른 가상화 툴은 안써봐서 패스
sudo pip3 install -U pip
sudo pip3 install -U virtualenv
virtualenv --system-site-packages -p python2 /home/pi/venv/python2.7.16
pi@rasp-dev:~/venv $ virtualenv --system-site-packages -p python2 /home/pi/venv/python2.7.16 Running virtualenv with interpreter /usr/bin/python2 Already using interpreter /usr/bin/python2 New python executable in /home/pi/venv/python2.7.16/bin/python2 Also creating executable in /home/pi/venv/python2.7.16/bin/python Installing setuptools, pip, wheel... done. pi@rasp-dev:~/venv $ source /home/pi/venv/python2.7.16/bin/activate (python2.7.16) pi@rasp-dev:~/venv $ pip install --upgrade pip DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already up-to-date: pip in ./python2.7.16/lib/python2.7/site-packages (20.0.2) |
/home/pi/venv 경로에 python2 가상화를 진행했다
설치가 끝나고 바로 pip를 업데이트를 해줬다
근데 작업전에 시스템 pip를 모두 업데이트 해줘서 의미가 있나 싶기도..
가상환경에 설치된 python을 사용하려면
/home/pi/venv/python2.7/bin/python 을 입력해야 하는 번거로움이 있어
activate를 사용해서 환경설정을 변경해 줄 수 있다
그냥 활성화라고 보면 될듯
source /home/pi/venv/python2.7.16/bin/activate
괜히 python2.7.16 으로 만들었다가 타이핑이 더 늘어났다
.bashrc 에 alias로 등록해도 될듯하지만 패스
pip 목록에 ipykernel 이 나오지 않으면 설치해야함
pi@rasp-dev:~ $ source /home/pi/python_env/python2.7.16/bin/activate (python2.7.16) pi@rasp-dev:~ $ pip list | grep ipykernel DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support ipykernel 4.10.1 (python2.7.16) pi@rasp-dev:~ $ python -m ipykernel install --user Installed kernelspec python2 in /home/pi/.local/share/jupyter/kernels/python2 (python2.7.16) pi@rasp-dev:~ $ deactivate pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: python2 /home/pi/.local/share/jupyter/kernels/python2 python3 /usr/local/share/jupyter/kernels/python3 |
ipykernel 4.10.1 이 확인된다
python -m ipykernel install --user 명령으로 설치를 진행하면
/home/pi/.local/share/jupyter/kernels/ 하위에 설정파일이 추가된다
별다를 것 없이 2를 3으로 바꿔주면된다
virtualenv --system-site-packages -p python3 /home/pi/venv/python3.7.3
pi@rasp-dev:~/venv $ virtualenv --system-site-packages -p python3 /home/pi/venv/python3.7.3 Already using interpreter /usr/bin/python3 Using base prefix '/usr' New python executable in /home/pi/venv/python3.7.3/bin/python3 Also creating executable in /home/pi/venv/python3.7.3/bin/python Installing setuptools, pip, wheel... done. pi@rasp-dev:~/venv $ source /home/pi/venv/python3.7.3/bin/activate (python3.7.3) pi@rasp-dev:~/venv $ pip install --upgrade pip Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Requirement already up-to-date: pip in ./python3.7.3/lib/python3.7/site-packages (20.0.2) |
설치가 끝나면 activate 를 활성화 하고 pip 업데이트 진행
pip 목록에 ipykernel 이 나오지 않으면 설치해야함
pi@rasp-dev:~ $ source /home/pi/venv/python3.7.3/bin/activate (python3.7.3) pi@rasp-dev:~ $ pip list | grep ipykernel ipykernel 5.1.3 (python3.7.3) pi@rasp-dev:~ $ python -m ipykernel install --user Installed kernelspec python3 in /home/pi/.local/share/jupyter/kernels/python3 (python3.7.3) pi@rasp-dev:~ $ deactivate pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: python2 /home/pi/.local/share/jupyter/kernels/python2 python3 /home/pi/.local/share/jupyter/kernels/python3 |
ipykernel 5.1.3 으로 확인됨
바로 python -m ipykernel install --user 으로 설치를 진행해주자
kernel 추가한건 좋은데 같은 버전끼리 있으면
마지막에 추가된 것만 반영되는 느낌
pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: python2 /home/pi/.local/share/jupyter/kernels/python2 python3 /usr/local/share/jupyter/kernels/python3 |
pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: python2 /home/pi/.local/share/jupyter/kernels/python2 python3 /home/pi/.local/share/jupyter/kernels/python3 |
python3 경로가 달라진게 확인된다
이 상태로는 화면에서 2개의 커널만 확인된다
시스템 python3 가 목록에서 사라짐
쓰는데는 차이가 없지만
차이를 알고 싶다면 가상화에만
pip로 tensorflow 같은거 설치해보고 import 해보면 된다
시스템 & 가상화 전부 나오게 하는게 목표였으니 설정을 좀 수정해야한다
pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: python2 /home/pi/.local/share/jupyter/kernels/python2 python3 /home/pi/.local/share/jupyter/kernels/python3 pi@rasp-dev:~ $ cd .local/share/jupyter/kernels/ pi@rasp-dev:~/.local/share/jupyter/kernels $ ls -al total 16 drwxr-xr-x 4 pi pi 4096 Jan 28 01:08 . drwxr-xr-x 4 pi pi 4096 Jan 28 00:20 .. drwxr-xr-x 2 pi pi 4096 Jan 28 01:05 python2 drwxr-sr-x 2 pi pi 4096 Jan 28 01:08 python3 pi@rasp-dev:~/.local/share/jupyter/kernels $ mv python2 env_python2 pi@rasp-dev:~/.local/share/jupyter/kernels $ mv python3 env_python3 pi@rasp-dev:~/.local/share/jupyter/kernels $ jupyter kernelspec list Available kernels: python2 /home/pi/.local/lib/python2.7/site-packages/ipykernel/resources env_python2 /home/pi/.local/share/jupyter/kernels/env_python2 env_python3 /home/pi/.local/share/jupyter/kernels/env_python3 python3 /usr/local/share/jupyter/kernels/python3 |
별거없고 설정된 커널디렉토리 명을 변경해주면 된다
가상화 python이니 앞에 env 를 붙여줬다
근데 커널이 4개로 확인되지만
jupyter notebook을 새로고침하면
python2 하나가 모자라다
시스템 python2는 목록에 없고
python3는 /usr 디렉토리 하위에 있어
수정권한을 받아야하니 각각 한번씩 더 해줬다
pi@rasp-dev:~ $ python -V Python 2.7.16 pi@rasp-dev:~ $ python -m ipykernel install --user Installed kernelspec python2 in /home/pi/.local/share/jupyter/kernels/python2 pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: env_python2 /home/pi/.local/share/jupyter/kernels/env_python2 env_python3 /home/pi/.local/share/jupyter/kernels/env_python3 python2 /home/pi/.local/share/jupyter/kernels/python2 python3 /usr/local/share/jupyter/kernels/python3 pi@rasp-dev:~ $ python3 -m ipykernel install --user Installed kernelspec python3 in /home/pi/.local/share/jupyter/kernels/python3 pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: env_python2 /home/pi/.local/share/jupyter/kernels/env_python2 env_python3 /home/pi/.local/share/jupyter/kernels/env_python3 python2 /home/pi/.local/share/jupyter/kernels/python2 python3 /home/pi/.local/share/jupyter/kernels/python3 |
시스템 python에도 ipykernel 을 설치해주자
같은 이름으로 2개씩 생겨났다
이 상태로는 jupyter notebook에서 구분이 안되니
화면이름(display name)도 변경해 줘야한다
pi@rasp-dev:~ $ jupyter kernelspec list Available kernels: env_python2.7.16 /home/pi/.local/share/jupyter/kernels/env_python2.7.16 env_python3.7.3 /home/pi/.local/share/jupyter/kernels/env_python3.7.3 python2 /home/pi/.local/share/jupyter/kernels/python2 python3 /home/pi/.local/share/jupyter/kernels/python3 |
sudo 권한 없이도 수정가능해 졌다
마땅히 쓸일은 없지만
pi@rasp-dev:~ $ vim /home/pi/.local/share/jupyter/kernels/python3/kernel.json { "argv": [ "python", "-m", "ipykernel_launcher", "-f", "{connection_file}" ], "display_name": "Python 3", "language": "python" } ~ <ter/kernels/python3/kernel.json" [noeol] 11L, 143C 1,1 All |
경로를 따라가보면 kernel.json 파일이 보이는데
display_name 을 변경해주고
jupyter notebook을 새로고침하면 변경된게 확인된다
참고
https://stackoverflow.com/questions/28831854/how-do-i-add-python3-kernel-to-jupyter-ipython
댓글 영역