python 같은 경우 여러 버전을 설치해서 사용해야 하는 경우가 종종 있다.
이런 경우, pyenv를 이용하면 python version 관리가 용이하다.
간단히 정리하자면...
원문:
https://github.com/pyenv/pyenv
https://github.com/pyenv/pyenv-installer
설치 (다운로드)
$ curl https://pyenv.run | bash
또는
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
shell 재시작
$ exec $SHELL
pyenv version 확인
$ pyenv --version
pyenv 2.3.22-6-gb81204c0
$ pyenv update
간단히 .pyenv를 모두 지워 준다.
$ rm -fr ~/.pyenv
.bashrc를 열어서 아래 항목 삭제
$ vi ~/.bashsrc
...
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
...
shell 재시작
$ exec $SHELL
원문:
https://github.com/pyenv/pyenv
설치 가능한 python list 확인
$ pyenv install --list
...
3.10.7
3.10.8
3.11.0
3.11-dev
...
python install
$ pyenv install 3.10.7
설치된 python list 확인
$ pyenv versions
system
3.6.15
3.8.14
* 3.10.7 (set by /home/xfin/.pyenv/version)
계정 전체에 사용할 버전 선택
$ pyenv global 3.10.7
특정 폴더 하위에서 사용할 python version 선택
$ cd test
test$ pyenv local 3.6.15
test$ ls
.python-version
test$ cat .python-version
3.6.15
현재 shell에서 사용할 python version 선택
$ pyenv shell 3.8.14
설치 시 에러가 발생한다면 아래 링크를 참고.
원문:
https://github.com/pyenv/pyenv/wiki#suggested-build-environment
pyenv를 사용해서 python 설치 시 우분투의 경우는 아래 패키지들이 설치되어 있어야 한다.
Ubuntu/Debian/Mint:
sudo apt update; sudo apt install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev