상세 컨텐츠

본문 제목

pyenv를 이용한 여러 개의 Python 버전 관리하기 + 가상 환경 만들기(ubuntu)

파이썬

by Riella 2021. 3. 3. 17:35

본문

728x90

Reference: 출처 1, 출처 2, 출처 3, 출처 4

 

파이썬을 가상 환경을 통해 분리시켜 쓰려고 찾아보던 차에

여러 개의 파이썬 버전을 관리하고 각 버전마다 가상 환경을 깔 수 있는 방법을 보게 되었다.

이 글에서는 pyenv 설치 / 사용 방법에 대해 적어놓았다.

 

ubuntu 20.04에는 이미 파이썬이 깔려있는데 확인 방법은 아래와 같다.

python3 --version
또는
python3 -V

물론 깔려있는 파이썬 버전만 쓴다면 환경변수인 PYTHONPATH를 지정하고 이미 있는 버전을 써도 된다.

하지만 다른 버전의 파이썬을 쓰는 프로젝트를 돌리게 되면 충돌이 일어날 수 있다.

그래서 보통 virtualenv와 venv(공식적으로 지원)등의 가상 환경을 만들어서 사용하곤 한다.

물론 위 둘의 방법도 특정한(다른) 버전의 파이썬을 쓰게끔 가상환경을 만들 수 있지만,

파이썬 버전을 관리해주는 pyenv와 같이 쓰면 훨 수월하다는 말에 한번 설치해봤다.

pyenv는 파이썬 버전 관리를 하지 가상환경이랑 다름에 유의하자 (pyenv-virtualenv를 포함하긴 함)

 

[pyenv 설치]

우선 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 libffi-dev liblzma-dev python-openssl

그리고 pyenv를 깔아준다.

curl https://pyenv.run | bash

.bashrc 파일에 pyenv경로를 추가해준다.

gedit ~/.bashrc
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

[210629: 기본 쉘을 zsh로 바꿨는데, 그런경우에는 /.zshrc에도 설정해주면 된다.]

gedit ~/.zshrc
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

터미널을 다시 시작하거나 아래 커맨드 입력

exec "$SHELL"

 

[pyenv 사용하기]

설치 가능한 pyenv 보기

pyenv install --list | grep

특정 버전의 파이썬 설치하기

pyenv install -v 3.7.3

설치된 버전들 확인하기 (기본적으로 깔려있는 파이썬도 같이 뜬다.)

pyenv versions

제거하기

pyenv uninsall 3.7.3

 

pyenv는 다양한 범주에서 다른 파이썬 버전을 돌릴 수 있게 해 주는데

이 사진만큼 잘 설명하는 게 없는 것 같아 사진을 들고 왔다.

Picture Reference: realpython.com/intro-to-pyenv/#using-the-pyenv-installer

shell에서도 설정 가능하고, local, global 하게도 다른 버전을 설정할 수 있는데

삼각형 위쪽 커맨드부터 순서대로 읽힌다.

예를 들어 global의 버전을 3.5.4로 하고 local의 버전을 2.6.8로 설정하면 로컬의 버전을 인식한다는 뜻이다.

마찬가지로 터미널에서 shell 버전을 따로 정해주면 해당 버전이 제일 우선시된다.

 

글로벌 버전

설정 하기

pyenv global 3.7.3

글로벌 버전이 무엇인지 설치된 위치에서 확인 가능하다.

cat ~/.pyenv/version

로컬 버전

설정 하기 (버전은 임의로 적었으며 사용하려면 설치 후에 해야 한다.)

pyenv local 2.7.6

확인하기

cat .python-version

지우기

pyenv local --unset

쉘 버전

설정하기

pyenv shell 2.7.6

확인하기

echo $PYENV_VERSION

지우기

pyenv shell --unset

 

가상 환경이랑 같이 버전 설정하기

가상 환경을 해당 버전과 같이 만들기

pyenv virtualenv 3.7.3 virtual_env_name

활성화

pyenv activate virtual_env_name

비활성화 (근데 이게 잘 안 먹힌다)

pyenv deactivate

이걸 쓰자.

pyenv local system

그리고 만들어진 가상 환경들을 볼 수 있는데 아래와 같은 명령어를 넣으면 된다.

pyenv virtualenvs

그러면 하나는 파이썬 버전/envs/가상 환경_이름이 나오고

다른 하나는 가상환경 이름만 나오는데 이건 symlink라고 한다.

 

마지막으로 가상환경 지우기

pyenv uninstall virtual_env_name

또는

pyenv virtualenv-delete virtual_env_name

이렇게 pyenv로 여러 버전의 파이썬을 바꿔가며 해당 버전의 파이썬을 쓰는 가상 환경을 만들 수 있다.

관련글 더보기

댓글 영역