MacOS (OSX)에서 파이썬 개발 환경 꾸미기

python
osx
macos
pyenv
virtualenv

#1

맥 OS (MacOS, OSX) 에서 파이썬 개발 환경을 꾸며보자.

파이선은 여러가지 버전이 있는데, 대표적으로 2.7.x 와 3.6.x 버전으로 나누어 지고, 각 버전마다 사용하는 라이브러리등이 다르면 해야 할 것은 하지 못하고, 주변환경 정리하는데 집중을 하는 일이 생기곤 한다. 그래서 정리해보자! 맥에서 파이썬 개발 환경을 꾸며 보자.

ruby Python
실행환경을 버전별로 분리 rbenv pyenv + virtualenv
라이브러리를 설치 gem pip
라이브러리 버전을 고정 Bundler pip + virtualenv
라이브러리 버전을 업데이트 Bundler pip

brew 를 설치하자.

brew는 맥오에스에서 여러가지 개발 라이브러리를 설치하고나 지울때 도움을 주는 휼륭한 라이브러리 관리도구이다. 우선 터미널을 열고. 다음 명령어를 Command + C -> Commmand + V해서 터미널에 붙여 넣자.

/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

설치하고 나면 brew라는 명령어를 통해서 라이브러리, 패키지를 관리할 수 있다.

brew의 라이브러리/패키지를 최신 것으로 바꾸려면 다음 명령어를 실행하자.

brew update

brew 자신을 최신것으로 바꾸려면 (중이 제머리 깍으려면) 다음 명령어를 실행하자.

brew upgrade

파이선을 위한 패키지를 설치해 보자.

우리는 파이선의 버전, 패키지, 라이브러리 등을 관리하기 위해서 pyenv+ virtualenv 라는 프로그램을 사용할 것이다. 이 프로그램을 설치하고 사용하기 위해서는 몆가지 해주어야 할 일들이 필요하다.

터미널에서 다음 명령어를 Command + C -> Commmand + V해서 터미널에 붙여 넣고 실행하자.

export PYTHON_CONFIGURE_OPTS="--enable-framework"
export CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix sqlite3)/include -I$(brew --prefix readline)/include -I$(brew --prefix zlib)/include -I$(brew --prefix gdbm)/include -I$(brew --prefix tcl-tk)/include"
export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix sqlite3)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix gdbm)/lib -L$(brew --prefix tcl-tk)/lib"

이제 pyenv가 필요로 하는 패키지들을 brew를 이용해서 설치하자.

brew install openssl zlib sqlite3 readline gdbm tcl-tk

pyenv 설치

$ pyenv_install() {
  # skip installation when pyenv is already installed.
  if [ `pyenv --version > /dev/null 2>&1; echo $?` == 0 ]; then
    echo '.pyenv is already installed.(skipping...)'
    return
  fi

  # pyenv
  git clone https://github.com/yyuu/pyenv.git ~/.pyenv;
  echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile;
  echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile;
  echo 'eval "$(pyenv init -)"' >> ~/.bash_profile;

  # virtualenv
  git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv;
  echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile;

  source ~/.bash_profile;
}

$ pyenv_install

pyenv를 이용해서 여러가지 파이선 환경을 바꾸고 실행하고 지워도 보자.

파이선 3.6.3 (최신 버전) 를 설치해보자.

$ pyenv install 3.6.3

Downloading Python-3.6.3.tar.xz...
-> https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
Installing Python-3.6.3...
Installed Python-3.6.3 to /Users/mare/.pyenv/versions/3.6.3

파이썬 3.6.2를 지워보자.

$ pyenv uninstall 3.6.2

pyenv: remove /Users/mare/.pyenv/versions/3.6.2? y

pyenv 에 설치된 파이선을 확인해 보자.

$ pyenv versions

설치된 pyenv 3.6.2를 virtualenv 로 테그를 달아주자.

$ pyenv virtualenv 3.6.2 v3.6.2

v3.6.2 환경으로 동작시켜 보자.

$ pyenv activate v3.6.2

v3.6.2 로 바뀌었는지 확인해 보자.

$ pyenv version

v3.6.2 환경을 시스템 파이선으로 되돌려 보자.

$ pyenv deactivate v3.6.2

시스템 파이선환경으로 바뀌었는지 확인해 보자.

$ pyenv version