프로젝트를 진행하다보면 같은 파이썬 프로젝트라도 요구되는 파이썬 버전이나 사용하는 프레임워크의 버전이 다를 수 있다. 이런 문제를 해결해줄 수 있는 것이 pyenv와 Vvrtualenv이다. Mac OS X 기준으로 pyenv와 virtualenv를 setup 하고 설정하는 방법에 대해 기록해본다.

  • pyenv: 로컬에 다양한 파이썬 버전을 설치하고 사용할 수 있도록 한다. pyenv를 사용함으로써 파이썬 버전에 대한 의존성을 해결할 수 있다.
  • virtualenv: 로컬에 다양한 파이썬 환경을 구축하고 사용할 수 있도록 한다. 일반적으로 Python Packages라고 부르는 ( pip install을 통해서 설치하는 ) 패키지들에 대한 의존성을 해결할 수 있다.

Pyenv 설치 및 실행

user$ brew update
user$ brew install pyenv

HomeBrew를 통해 pyenv를 설치한다. HomeBrew는 Mac OS X를 위한 패키지 관리자이다. HomeBrew가 설치되어있지 않다면 아래 내용을 터미널에 입력하여 HomeBrew설치를 진행한다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
user$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
user$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

위의 내용을 입력하여 터미널을 시작할 때 pyenv를 실행하도록 설정해준다.

user$ pyenv version
system (set by /Users/username/.pyenv/version)
user$ pyenv versions
* system
  3.4.0
  3.4.1

pyenv version을 입력하면 현재 사용중인 Python의 버전이 출력된다. pyenv versions를 입력하면 설치되어있는 python의 버전들이 출력된다.

user$ pyenv install 3.4.1

python의 특정 버전을 install하기 위해서 위의 명령어를 입력하면 된다.

user$ pyenv shell 3.4.1
user$ pyenv version
* 3.4.1
  system
  3.4.0

설치된 python의 특정 버전을 사용하기 위해서는 위와 같이 shell명령어를 사용하면 된다.

Virtualenv 설치 및 실행

virtualenv를 사용하게 되면, 프로젝트에 사용하게 되는 python package에 대한 의존성도 해결할 수 있다.

user$ brew install pyenv-virtualenv

위의 명령어를 입력하여 pyenv-virtualenv를 설치한다.

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

위의 명령어를 입력하여 터미널을 시작할 때 virtualenv를 실행하도록 한다.

user$ pyenv virtualenv 3.4.1 my_project_pyenv_3.4.1
user$ pyenv versions
* 3.4.1
  system
  3.4.0
  my_project_pyenv_3.4.1

pyenv virtualenv PYTHON_VERSION VIRTUAL_ENV_NAME을 입력하여 가상 파이썬 개발환경을 설정할 수 있다. pyenv versions명령어를 통해 설정된 개발환경을 확인할 수 있다.

user$ pyenv shell my_project_pyenv_3.4.1
pyenv-virtualenv: activate my_project_pyenv_3.4.1
(my_project_pyenv_3.4.1) user$

pyenv shell명령어를 통해 가상환경을 실행할 수 있다. 성공적으로 실행이 되었다면 입력 라인의 괄호 안에 가상환경의 이름이 입력되게 된다.(VIRTUAL_ENV_NAME)user$ 여기서 부터 pip install등의 명령어를 이용해 파이썬 패키지를 설치해주면 개발을 위한 가상환경 setup이 완료되게 된다.


참고

pyenv + virtualenv + autoenv 를 통한 Python 개발 환경 구축하기
GitHub - yyuu/pyenv: Simple Python version management
python:pyenv [권남] - 권남이 홈페이지

through.kim's profile image

through.kim

2016-03-31 16:25

Read more posts by this author