강의노트 01. 파이썬 개발환경 세팅 (pyenv, virtualenv, autoenv, git, shell)

|

패스트캠퍼스 컴퓨터공학 입문 수업을 듣고 정리한 내용입니다.

가상환경

  • 윈도우 위에서 우분투를 돌린다던지 맥 위에서 윈도우를 돌리기 위해서 가상환경을 사용한다.
  • 로컬 환경이 달라지면 개발 협업이 어려워진다. 따라서 작업한 파일을 이미지로 만들어서 전달하고, 협업하는 사람은 해당 이미지를 바탕으로 가상환경 위에서 작업한다. (예: 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
# 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