Ubuntu 파이썬 개발환경 구축- pyenv, virtualenv

게시: by Creative Commons Licence

참조

Github: yyuu의 pyenv pyenv-installer 이한영 블로그 - pyenv와 virtualenv를 사용한 파이썬 개발환경 구성 안수찬 블로그 - pyenv + virtualenv + autoenv 를 통한 Python 개발 환경 구축하기

Common build problems 파이썬 설치 전 필수 패키지


파이썬 버전관리 이유

파이썬은 여러 버전을 가지고 있고 특히 2.x버전과 3.x버전에 큰 차이가 있는데, 프로젝트 마다 언어와 프레임워크를 다르게 사용하려면 버전관리 및 가상환경 분리가 필요하다. 이 포스팅은 Github yyuu님의 pyenv, pyenv-virtualenv 라이브러리, 이한영 강사의 블로그 및 안수찬 블로그를 참고하였다. 우분투 리눅스 배포판을 기준으로 설치하였다.

  • pyenv - "Simple Python Version Management", 로컬에 다양한 파이썬 버전을 설치하고 사용할 수 있도록 한다. pyenv를 사용함으로써 파이썬 버전에 대한 의존성을 해결할 수 있다.
  • virtualenv - “Virtual Python Environment builder”, 로컬에 다양한 파이썬 환경을 구축하고 사용할 수 있도록 한다. 일반적으로 Python Packages라고 부르는 ( pip install을 통해서 설치하는 ) 패키지들에 대한 의존성을 해결할 수 있다. 이로써 프로젝트별로 설치된 패키지들 간의 충돌을 막을 수 있다.

1. pyenv, pyenv-virtualenv 설치

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
  • bash를 기준으로 하였다.

2. pyenv 설정

  • bash에서는 .bashrc 또는 .bash_profile
  • zsh에서는 ~/.zshrc에서 설정한다.
➜ vi ~/.bashrc

# 가장 아래쪽에 아래 문장 추가
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"source ~/.zshrc
  • shell 설정을 바꾸었으면, ❶ 터미널을 재시작하거나 ❷ source ~/.zshrc 실행한다.

python 설치

1. 필수 패키지 설치

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

2. pyenv install –list

  • 설치 가능한 파이썬 버전 보기
➜ pyenv install --list
  3.6.0
  3.6-dev
  3.6.1
  3.6.2
  3.6.3
  3.7.0a2
  3.7-dev

# 이후 원하는 버전을 설치한다.
➜ pyenv install 3.6.1

pyenv-virtualenv

1. pyenv global

  • 컴퓨터 전체에서 사용할 파이썬 환경 설정
➜  pyenv global 3.6.1
➜  pyenv versions
  system
* 3.6.1 (set by /usr/local/var/pyenv/version)

2. pyenv virtualenv

  • 가상환경 만들기
#문법  pyenv virtualenv <version> <env_name>
➜  pyenv virtualenv 3.6.1 env361

3. pyenv local

  • 프로젝트 폴더 (git 저장소 단위 폴더)에 위 가상환경 설정하기
#문법  pyenv local <env_name>cd ~/projects/env361/
➜  pyenv local env361
#프롬프트 좌측에 가상환경 이름 표시 

(env361)ls -al

drwxrwxr-x  5 learn learn 4.0K  1월 17 02:01 .
drwxrwxr-x 16 learn learn 4.0K  1월  8 15:15 ..
-rw-rw-r--  1 learn learn    8 12월  1 23:03 .python-version