PyEnv 이 이용해서 다양한 파이썬 버전을 바꾸어 가면서 사용해 보자

ubuntu
centos
python
osx
linux

#1

pyenv 란

pyenv 는 python 의 버전 관리자로 ruby의 rbenv 를 보고 만들었다.

  • 여러 버전의 Python을 쉽게 전환된다.
  • 다양한 버전의 Python을 ~ / .pyenv 아래에 배치하고있다. 따라서 사용법은 루비와 같다.

PyEnv에 필요한 라이브러리 설치

  • Debian/Ubuntu 환경
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
  • Fedora/CentOS/RHEL:
yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel

작업 환경

  • Ubuntu 16.04.x LTS

설치

  1. pyenv-install를 이용해서 설치

    $ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

    export PATH=$HOME/.pyenv/bin:$PATH

    eval “$(pyenv init -)”

    $ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

  2. github에서 클론으로 설치

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

.bashrc에 설정

pyenv 설정파일을 기본 쉡(bash) 설정파일(.bashrc) 에 추가해 주자.

$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"'>> ~/.bashrc
$ echo 'eval "$(pyenv init -)"'>> ~/.bashrc
$ echo 'eval "$(pyenv virtualenv-init -)"'>> ~/.bashrc
$ echo 'alias env="pyenv activate v3.6.3"'>> ~/.bashrc
$ source ~/.bashrc
$ pyenv -v

Pyenv 명령

$ pyenv install --list
$ 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
$ pyenv install 3.6.1
$ pyenv install anaconda3-4.3.1
$ pyenv versions
* system (set by /root/.pyenv/version)
  3.6.1
  anaconda3-4.3.1

현재 버전 확인해보자.

$ python --version
Python 2.7.12

파이썬 버전을 바꿔보자.

  • 설치된 파이선 목록을 보자.

    $ pyenv install --list

  • 3.6.2 버전의 파이선을 설치해 보자.

    $ pyenv install 3.6.2

  • 설치된 3.6.2 버전을 지워보자.

    $ pyenv uninstall 3.6.2

  • 설치된 파이선 목록을 보자.

    $ pyenv versions

  • 현재 디렉토리 위치에서 사용할 수 있는 버전을 보자.

    $ pyenv version

파이썬 버전을 지정해 보자.

  • 기본(디폴트) 버전을 지정해 보자.

    $ pyenv global 3.3.6

  • 현재 디렉토리의 버전을 지정해 보자.

    $ pyenv local 2.7

  • 현재 디록토리의 버전을 해제하자.

    $ pyenv local --unset

global 명령을 사용하여 버전을 바꾸자.

$ pyenv global 3.6.1
$ pyenv versions
  system
* 3.6.1 (set by /root/.pyenv/version)
  anaconda3-4.3.1
$ python --version
Python 3.6.1

local 명령을 사용하여 버전을 전환합니다.

  • 특정 디렉토리에서만 버전을 전환하고자 할 때 사용할 수 있다.
  • pyenv local이 실행되면 실행 된 현재 디렉토리에.python-version라는 파일이 만들어 진다. 이것은 global 설정보다 우선한다.
$ cd hoge
$ pyenv local anaconda3-4.3.1
$ python --version
Python 3.6.2 : Anaconda 4.3.1 (64-bit)
$ cd ..
$ python --version
Python 3.6.2

덧붙여서,.python-version의 내용을 보니까 버전 이름 만 적혀 있었다.

$ cat .python-version
anaconda3-4.3.1

Python의 위치 (전체 경로) 확인

$ pyenv which python3.6
/root/.pyenv/versions/3.6.2/bin/python3.6

참고로 일반 which도 시험해 본다.

$ which python3.6
/root/.pyenv/shims/python3.6
$ which python
/root/.pyenv/shims/python