Software Workshop

pyenv

pyenv는 시스템에 설치된 python 런타임 대신 사용자가 독자적으로 python 런타임을 선택할 수 있도록 분리해주는 도구임

설치

macOS

brew install python pyenv 

Linux

git clone https://github.com/pyenv/pyenv.git ~/.pyenv 

.bashrc에 다음 추가

export PYENV_ROOT=$HOME/.pyenv
export PATH=$PYENV_ROOT/bin:$PATH
if command -v pyenv > /dev/null; then
    eval "$(pyenv init --path)" 
    eval "$(pyenv init -)"
fi

원하는 버전의 바이너리 설치

pyenv install --list
pyenv install 3.10.4
pyenv shell 3.10.4

pyenv-virtualenv

virtualenv는 시스템에 설치된 python 라이브러리 모듈(기본 모듈 및 사용자 설치 모듈) 대신에 특정 애플리케이션을 위한 독립적인 라이브러리 모듈 의존성을 분리해서 사용할 수 있는 도구임

설치

macOS

brew install pyenv-virtualenv 

Linux

git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv 

설정

.bashrc에 다음 내용을 추가한다. 위에서 pyenv 설정을 했던 위치 하단에 바로 붙여서 추가해준다.

    eval "$(pyenv virtualenv-init -)"

가상환경 생성

v3라는 이름의 가상환경을 3.5.2 버전을 기반으로 해서 만들어냄

pyenv virtualenv 3.10.4 v3 

가상환경 확인 (버전 목록)

현재 사용 중인 버전 확인

pyenv version 

system이라고 나오면 시스템에 설치된 기본 바이너리 사용 중임을 의미함

설치되어 있는 전체 버전 목록 확인

pyenv versions 

가상환경 사용

pyenv shell v3
pyenv activate 

프롬프트에 환경이름이 노출됨

pyenv deactivate 

가상환경에서 빠져 나옴

activate는 프롬프트에 환경이름을 노출하는 것 뿐만 아니라 deactivate를 통해 가상환경에서 빠져나올 수 있도록 미리 준비해 줌

특정 디렉토리에서 특정 버전의 Python 사용하기

전역적인 Python 지정

pyenv global system 

기본 버전으로 system(보통 2.7.x) 버전을 이용하겠다는 의미

특정 디렉토리용 Python 지정

pyenv local v3 

Troubleshooting

pyenv: no such command `shell'

다음 코드를 .bashrc에 추가

eval $(pyenv init -) 

관련 글

실전!_Python_실행_환경_설정하기