PyEnv & Jupyterlab
1. Installation
Dependencies 는 다음과 같습니다.
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev lzma liblzma-dev libbz2-dev
PyEnv 설치는 다음과 같이 합니다.
$ curl https://pyenv.run | bash
update 그리고 uninstall 은 다음과 같이 합니다.
# Update
$ pyenv update
# Uninstall // 이후 .bashrc 그리고 .profile 에서도 설정 삭제
$ rm -fr ~/.pyenv
.bashrc 또는 .profile 에 다음의 설정이 필요합니다.
# PyEnv
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Shell Restart 를 해줍니다.
$ exec $SHELL
2. Usage
2.1 Basic Usages
현재 설치된 python 버젼 확인
$ pyenv versions
* system (set by /home/anderson/.pyenv/version)
2.2 Install Additional Python Version
설치 관련 명령어
# 설치 가능한 Python 버젼들의 목록을 볼 수 있음
$ pyenv install --list
# 설치
$ pyenv install 3.10.6
# 현재 설치된 버젼들 보기
$ pyenv versions
2.3 Switch Python Version
3가지 방법으로 변경을 할 수 있습니다.
pyenv shell <version>
: 현재 shell session 만 버젼 변경pyenv local <version>
: 현재 디렉토리에 있으면 자동으로 선택되게 만듬 (sub-directories 포함)pyenv global <version>
: 해당 user account에 모든 python version 을 변경
2.4 VirtualEnv
PyEnv 의 plugin으로서 virtualenv도 제공을 합니다.
현재 설치된 virtualenv 목록 보기
$ pyenv virtualenvs
3.10.6 의 기준으로 virtual environment 생성은 다음과 같이 합니다.
$ pyenv virtualenv 3.10.6 venv3.10
Activate & Deactivate 방법
pyenv activate <version>
pyenv deactivate
# Activate
$ pyenv activate venv3.10
# Deactivate
$ pyenv deactivate
Virtual Environment 삭제
pyenv uninstall <virtualenv name>
$ pyenv uninstall venv3.10
3. Pycharm
3.1 Pycharm 설정
- File -> Settings -> Project -> Python Interpreter
해당 Menu 에서 PyEnv 를 선택하는 것이 아니라 Virtual Environment 를 선택후 그림과 같이 설정
4. Create Kernelspec for PyEnv
4.1 Install Essential Libraries
$ pip install --upgrade jupyterlab mpl-interactions[jupyter] jupyterlab-code-formatter black isort autopep8
$ pip install --upgrade pandas numpy matplotlib ipython pydot-ng graphviz scikit-learn setuptools wheel
$ pip install --upgrade lxml openpyxl pyarrow
4.2 Choose specific pyenv version
먼저 특정 버젼의 pyenv 또는 virtualenv 를 선택합니다.
$ pyenv global 3.10.7
$ pyenv versions
system
2.7.18
* 3.10.7 (set by PYENV_VERSION environment variable)
4.3 Create Kernelspec
# 리스트 출력
$ jupyter kernelspec list
# 등록
$ python -m ipykernel install --user --name 3.10.7 --display-name "PyEnv 3.10.7"
# 삭제
$ jupyter kernelspec remove <kernel_name>
생성시 옵션은 다음과 같습니다.
--user
: 현재 유저 계정의 위치해 있는 python 위치에 설치--name
: virtualenv 이름 또는 pyenv version 의 이름을 지정--display-name
: Jupyter 에서 보여질 이름 지정
4.4 보안 설정
jupyterlab에서 node.js 를 사용하는데.. 이때 package 설치시 또는 jupyter lab build
해야 할때 에러가 날 수 있습니다.
회사 보안상의 이유로 막혀있는 경우 npm 그리고 pip 에서 회사에 등록된 certificate 을 등록시켜줘야 합니다.
아래에서 /etc/ssl/cert.pem
은 변경해줘야 합니다.
# PIP 에서 certificate 등록
$ pip config set global.cert /etc/ssl/cert.pem
$ pip config list
# NPM 에 등록
$ npm config set cafile /etc/ssl/cert.pem
4.5 Install data science libraries
Data Analytics Tools
너무 느려서 -v 옵션을 꼭 붙이는게 좋습니다. (개 오래 걸림)
$ sudo apt-get install graphviz
$ pip install -v numpy scikit-learn scipy matplotlib ipython jupyter pandas sympy keras pydot-ng graphviz hf_transfer
$ pip install --upgrade jupyterlab mpl-interactions[jupyter] jupyterlab-code-formatter black isort autopep8
$ jupyter server extension enable --py jupyterlab_code_formatter
4.5 Jupyter Lab
다음과 같이 설정합니다.
$ jupyter lab --generate-config
$ vi ~/.jupyter/jupyter_lab_config.py
# 다음과 같이 수정 한다
c.ServerApp.iopub_data_rate_limit = 10000000000
c.ServerApp.iopub_msg_rate_limit = 10000000000
$ jupyter lab
커널 선택시 만들어진 커널을 선택 할 수 있습니다.
4.6 HuggingFace
vi ~/.bashrc 한 다음에 다음을 추가
# HuggingFace
export HF_HUB_ENABLE_HF_TRANSFER=1