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

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 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.2 Create Kernelspec

python -m ipykernel install --user --name 3.10.7 --display-name "PyEnv 3.10.7"
  • --user: 현재 유저 계정의 위치해 있는 python 위치에 설치
  • --name: virtualenv 이름 또는 pyenv version 의 이름을 지정
  • --display-name: Jupyter 에서 보여질 이름 지정

4.3 Run Jupyter Lab

$ jupyter lab

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