강의노트 01. 파이썬 개발환경 세팅 (pyenv, virtualenv, autoenv, git, shell)
27 Mar 2017 | pyenv autoenv virtualenv패스트캠퍼스 컴퓨터공학 입문 수업을 듣고 정리한 내용입니다.
가상환경
- 윈도우 위에서 우분투를 돌린다던지 맥 위에서 윈도우를 돌리기 위해서
가상환경
을 사용한다. - 로컬 환경이 달라지면 개발 협업이 어려워진다. 따라서 작업한 파일을 이미지로 만들어서 전달하고, 협업하는 사람은 해당 이미지를 바탕으로 가상환경 위에서 작업한다. (예: DB 작업 시에는 베이그런트를 사용해서 작업)
- 실제 현업에서는 GUI 우분투가 아닌 CLI 환경의 우분투 서버를 사용해서 서버나 DB작업을 한다.
shell
운영체제(OS)에서 사용자의 명령을 해석하여 대신 실행해주는 프로그램
- Unix, Linux
- 종류 :
bash(ubuntu, OSX default)
, sh, zsh
- 종류 :
- Windows
- 종류 : explorer.exe(for GUI Windows), cmd.exe(for CLI MS-DOS)
환경설정
git 초기 설정
$ brew install git
$ git config --global user.name "username"
$ git config --global user.email "github email address"
$ git config --list
python version management
- python 버전을 프로젝트 별로 자유롭게 사용하기 위해서 사용
pyenv 설치 및 python 설치
- Simple Python Version Management: pyenv
- pyenv lets you easily switch between multiple versions of Python. It’s simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
pyenv 설치
# 설치
$ brew update
$ brew install pyenv
# ~/.bashrc
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc #bash 를 통해서 파일에 입력
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ source ~/.bashrc #재실행
$ exec "$SHELL" # shell 재실행
#~/.zshrc
$ atom ~/.zshrc # atom을 통해서 파일에 아래 내용 입력
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
$ source ~/.zshrc #재실행
$ exec "$SHELL" # shell 재실행
python 3.6.0 설치
$ pyenv version
$ pyenv install --list # 설치 가능한 패키지 목록 (파이썬 버전별 목록)
$ pyenv install 3.6.0 # python 설치
$ pyenv shell 3.6.0 # pyhotn 3.6.0으로 shell 실행 > autoenv를 사용하면 별도 지정이 필요 없음
$ python --version
sane build environment 를 위한 설치
# MacOS
$ xcode-select --install
$ brew install openssl readline xz
# ubuntu
$ apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils
Virtualenv 설치
Virtualenv
- https://github.com/pyenv/pyenv-virtualenv
- pyenv-virtualenv is a
pyenv plugin
that provides features to manage virtualenvs and conda environments for Python on UNIX-like systems. - 설치
- gitclone 사용 :
$(pyenv root)
부분을 ./zshrc 에서 입력한$PYENV_ROOT
으로 변경 - brew사용 : brew install pyenv-virtualenv
- gitclone 사용 :
# clone으로 설치
$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
# brew로 설치
$ brew install pyenv-virtualenv
# 설치 후 .zshrc 파일에 아래 내용 추가
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
가상환경 추가 및 실행
$ pyenv virtualenv 3.6.0 css-3.6.0 # css-3.6.0 이라는 가상환경을 추가
$ pyenv versions # 가상환경 리스트 확인
system (set by /Users/Leehyunjoo/.pyenv/version)
3.6.0
3.6.0/envs/css-3.6.0
css-3.6.0 # .pyenv 폴더 안에 존재
# 가상환경 실행 및 종료
$ pyenv activate css-3.6.0
$ pyenv deactivate
autoenv 설치
- https://github.com/kennethreitz/autoenv
- Autoenv: Directory-based environments
- If a directory contains a .env file, it will automatically be executed when you cd into it. This is great for
- auto-activating virtualenvs
- project-specific environment variables
# 설치 (Using Homebrew)
$ brew install autoenv
$ echo "source $(brew --prefix autoenv)/activate.sh" >> ~/.zshrc
$ exec "$SHELL" # 재실행
- autoenv 적용 및 실행
프로젝트 폴더 내에 .env 파일을 만들어 원하는 가상환경 내용을 입력한다.
# 프로젝트 폴더로 이동 후
$ touch .env
$ vim .env
# ~/.env 에 아래 내용 입력
$ pyenv activate css-3.6.0
$ cd ./ # 나갔다가 다시 들어오면 virtualenv 환경이 켜짐
requirement.txt
- 필요한 라이브러리(ipython, django 등)를 설치하여 개발환경 세팅 후 아래 명령을 통해 requirements.txt를 만든다.
$ pip3 list > requirements.txt
- requirements.txt가 있다면 다음 명령을 통해 동일한 파이썬 패키지들을 한번에 설치할 수 있다.
$ pip3 install -r requirements.txt
참고자료 (추가)
정호영님이 추천해주신 안수찬님 글 (pyenv + virtualenv + autoenv 를 통한 Python 개발 환경 구축하기) 에서 자세한 설명을 확인 할 수 있다.
Jupyter Notebook
- autoenv가 켜진 상태에서 jupyter 설치
- 가상환경 위에서 재설치 필요
$ pip install jupyter
$ pip list