한 컴퓨터에 여러 파이썬 버전이 필요한 상황에서, 여러 파이썬을 설치하고 쉽게 전환하는 등의 관리를 쉽게 할 수 있도록 돕는 툴
공식 깃헙에 잘 나와있으니 아래 링크를 참조
https://github.com/pyenv/pyenv-installer
pyenv가 PATH의 맨 앞에 shim 경로를 추가하여 python
이나 pip
명령어를 사용자가 입력했을 때 shim으로 가도록 유도한다.
Shims이란?
사용자가 입력한 명령어를 pyenv로 전달하는 아주 가벼운 실행파일이다.
pip
이름의 shim 코드
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
program="${0##*/}"
export PYENV_ROOT="/root/.pyenv"
exec "/root/.pyenv/libexec/pyenv" exec "$program" "$@"
pyenv의 python selection
PYENV_VERSION
환경변수 값 확인. pyenv shell
명령어로 해당 환경변수에 파이썬 버전이 적힌다.
현재 경로에서 .python-version 파일을 확인한다. pyenv local
명령어로 해당 파일에 파이썬 버전을 명시한다. 현재 위치부터 위로 올라가면서 root폴더까지 .python-version 파일을 찾는다.
$(pyenv root)/version 파일을 확인한다. pyenv global
명령어로 해당 파일에 파이썬 버전을 명시한다.
설치 가능한 파이썬 리스트
pyenv install —list
설치된 버전들 확인
pyenv versions
특정 버전의 파이썬 제거
pyenv uninstall 3.10.4
파이썬 버전 선택하기
버전 선택할 때 사용하는 명령어는 shell
, local
, global
, 총 3개가 있다. 그림에서도 쉽게 파악할 수 있듯이 shell → local → global → system 순으로 파이썬 버전을 체크하므로, 만약 shell 단계에서 파이썬 버전이 명시되어 있다면 local이나 global에 파이썬 버전이 명시되어 있어도 바로 shell의 파이썬을 사용한다.
shell
# 3.10.5 파이썬 사용
pyenv shell 3.10.5
python3 -V
# 설정 해제
pyenv shell --unset
local
# 3.10.5 파이썬 사용
pyenv local 3.10.5
python3 -V
# 설정 해제
pyenv local --unset
global
# 3.10.5 사용
pyenv global 3.10.5
python3 -V
가상환경 사용하기
생성
# pyenv virtualenv <python-version> <virtualenv-name>
pyenv virtualenv 3.10.5 test
활성화
# pyenv activate <virtualenv-name>
pyenv activate test
비활성화
pyenv deactivate
만들어진 가상환경 조회
pyenv virtualenvs
가상환경 삭제
# pyenv uninstall <virtualenv-name>
pyenv uninstall test