[Ubuntu] Ubuntu에서 pyenv, virtualenv 사용하기

업데이트(2024.08.01): pyenv uninstall 관련 내용 추가

업데이트(2024.07.19): Ubuntu 16.04 LTS 관련 내용 삭제 및 패키지 업데이트 변경

업데이트(2024.07.14): OS 버전에 따른 패키지 관련 내용 수정

업데이트(2022.12.01): pyenv-update git 주소 변경

업데이트(2021.10.11): pyenv 설정 관련 값 추가

업데이트(2020.02.08): Ubuntu 18.04 내용 추가 및 파이썬 버전 변경 3.5.2 -> 3.6.2

업데이트(2018.03.07): pyenv-update를 추가하였고 환경변수를 로드해주는 명령어도 추가해주었습니다.

Ubuntu 환경에서 pyenv와 virtualenv를 사용해보자

환경

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS
  • Ubuntu 22.04 LTS
  • Ubuntu 24.04 LTS


필요한 패키지 설치

Suggested build environment에 따라 필요한 패키지들을 먼저 설치합니다.

sudo apt update -y
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl git libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev


pyenv 설치

git에서 ~/ 폴더안에 .pyenv이름으로 직접 clone을 합니다.

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

추가를 마치고 환경변수까지 추가합니다.

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile

환경 변수를 추가하고나서 pyenv를 찾을 수 없다고 하여 컴퓨터를 reboot하였습니다.

만약 이렇게 reboot을 했음에도 진행이 되지 않는다면 다음 링크를 참고한다.(https://github.com/pyenv/pyenv/wiki/Common-build-problems)


pyenv-update 설치

pyenv를 업데이트 해줄 수 있도록 다음 아래 명령어를 통해 pyenv-update를 설치합니다.

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

업데이트를 합니다.

pyenv update


설치 가능한 python version들 확인

설치 가능한 python version들을 확인하고 설치합니다.

pyenv install --list


필요한 python version 설치

저는 3.6.2를 설치하였습니다. pyenv에 설치된 python version들은 pyenv versions를 통해서 확인 가능합니다.

pyenv install 3.6.2


pyenv-virtualenv 설치

git에서 ~/.pyenv/plugins/ 폴더안에 pyenv-virtualenvwrapper이름으로 직접 clone을 합니다.

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

추가를 마치고 환경변수까지 추가합니다.

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
source ~/.bash_profile

똑같이 환경변수를 추가하고 로드하였는데도 안되면 다시 shell을 껐다가 켭니다.


가상환경 생성

이전에 포스팅한 [Mac] Mac에서 pyenv, virtualenv 그리고 autoenv 사용하기에 나와있는 것과 사용법은 똑같습니다.

사용법

pyenv virtualenv [python version] [virtual environment name]

예시

pyenv virtualenv 3.6.2 LinkU


가상환경 사용

이 부분도 포스팅한 [Mac] Mac에서 pyenv, virtualenv 그리고 autoenv 사용하기에 나와있는 것과 사용법은 똑같습니다.

$ pyenv activate [virtual environment name]
(virtual environment name)$ pyenv deactivate


가상환경 삭제

pyenv versions 명령어를 통해 나오는 가상환경을 pyenv uninstall [가상환경 디렉토리]를 통해 삭제할 수 있습니다.

$ pyenv versions
* system (set by /home/twpower/.pyenv/version)
  3.7.2
  3.9.2
  3.9.2/envs/test-env
  3.10.2
  3.10.2/envs/jupyter-notebook-env
  jupyter-notebook-env --> /home/twpower/.pyenv/versions/3.10.2/envs/jupyter-notebook-env
  test-env --> /home/twpower/.pyenv/versions/3.9.2/envs/test-env
$ pyenv uninstall 3.9.2/envs/test-env 
pyenv: remove /home/twpower/.pyenv/versions/test-env? [y|N] y
pyenv-virtualenv: remove /home/twpower/.pyenv/versions/3.9.2/envs/test-env? (y/N) y


참고자료