▶︎ pyenv
- 파이썬 버전 관리 도구
- 다양한 버전의 파이썬을 지원하고, 새로운 버전에 대한 쉬운 테스트가 가능
‣ 타 버전 관리의 문제점
- system python
pip install
로 모든 사용자가 사용할 수 있는 패키지 설치.- 기존 서비스 또는 새로운 서비스에 다른 패키지 버전을 사용하고 싶은 경우 예상하지 못할 문제가 발생할 수 있음.
- 설치할 수 있는 파이썬 버전 제어 불가능
- package manager
- 패키지를 시스템에 설치하는 방법
- 패키지를 사용자 공간이 아닌 전역 시스템 공간에 설치함.
- 설치할 수 있는 파이썬 버전 제어 불가능
이러한 문제점을 볼 때, 파이썬 버전을 유연하게 관리하는 기준은 아래와 같다.
- 사용자 공간에 파이썬 설치
- 다양한 파이썬 버전 운영
- 사용자가 원하는 파이썬 버전 지정
- 설치된 버전 간 호환성
pyenv
패키지를 사용하면 이러한 작업들을 수행할 수 있다.
▶︎ pyenv 설치
- 설치 환경은 Linux에서 진행된다.
- OS 마다 설치 방법이 다르므로 pyenv 공식 레포지토리를 참고하자.
0. 필수 패키지 설치
sudo apt-get install -y make build-essential \
libssl-dev zlib1g-dev libbz2-dev libreadline-dev \
libsqlite3-dev llvm libncursesw5-dev xz-utils tk-dev \
libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
1. pyenv 설치 스크립트 실행
curl https://pyenv.run | bash
2. 환경변수 셋업
# bash 쉘 환경인 경우
# ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# zsh 쉘 환경인 경우
# ~/.zshrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
exec "$SHELL"
▶︎ pyenv 명령어
설치할 수 있는 python 버전 목록 확인
pyenv install --list
특정 버전의 파이썬 설치
pyenv install 3.11.0
Downloading Python-3.11.6.tar.xz...
-> https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz
Installing Python-3.11.6...
설치 시 시간이 조금 걸린다.
설치한 파이썬 버전 확인
pyenv versions
* system (set by /home/master/.pyenv/version)
3.11.0
3.11.6
생성한 가상환경 목록 확인
pyenv virtualenvs
3.11.6/envs/py3_11_6 (created from /home/master/.pyenv/versions/3.11.6)
py3_11_6 (created from /home/master/.pyenv/versions/3.11.6)
▶︎ 개발 환경 설정
‣ global
pyenv로 설치한 파이썬을 기본(글로벌) 파이썬 버전으로 변경
pyenv global {version}
‣ local
디렉토리 별로 파이썬 버전 다르게 설정
pyenv local {version}
최상위 디렉토리인 pyenv-test
디렉토리에서는 3.11.6
버전의 파이썬을 사용하고,
하위 디렉토리인 version_split
디렉토리에서는 3.11.0
버전을 사용해 볼 것이다.
최상위 디렉토리에서 pyenv local 3.11.6
입력
하위 디렉토리에서 pyenv local 3.11.0
입력
pyenv local
은 각 디렉토리마다 파이썬 버전이 적힌 .python-version
이라는 파일을 생성함
tree -a
.
├── .python-version
└── version_split
└── .python-version
‣ virtualenv
- 원하는 버전에 대한 가상환경 생성
py3_11_6 이라는 가상환경을 생성
pyenv virtualenv 3.11.6 py3_11_6
test 라는 폴더에 위에서 생성한 가상환경을 적용하고 싶은 경우
pyenv local py3_11_6
py3_11_6 가상환경으로 접속하려는 경우
pyenv activate py3_11_6