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가지 방법으로 변경을 할 수 있습니다.

  1. pyenv shell <version> : 현재 shell session 만 버젼 변경
  2. pyenv local <version> : 현재 디렉토리에 있으면 자동으로 선택되게 만듬 (sub-directories 포함)
  3. 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 
$ 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

커널 선택시 만들어진 커널을 선택 할 수 있습니다.