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

업데이트(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 16.04
  • Ubuntu 18.04


필요한 패키지들 설치

Common build problems를 참고하면 Build 관련해서 문제가 생길 때 설치해야 할 패키지와 어떻게 pyenv version package를 지우고 재설치해야 하는지가 나와있습니다. 이 때 나온 패키지들을 미리 설치해주면 나중에 생길 문제를 미리 방지 할 수 있겠죠? :)

$ 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 git libedit-dev python


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


참고자료