Python 개발 환경 구축하기 - pyenv, virtualenv, autoenv

Reading time ~4 minutes


pyenv

Simple Python Version Management. 다양한 python version을 설치하고 쉽게 바꿔가면서 사용할 수 있도록 해준다.

설치하기

$ brew update  
$ brew install pyenv

pyenv init을 ~/.bash_profile에 추가하기

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

pyenv 사용하기

$ pyenv version
system (set by /Users/jihun/.pyenv/version)

pyenv version명령으로 현재 사용중인 python version을 확인 할 수 있다. 기본 설정은 system으로 시스템에 설치된 파이썬을 의미한다.

$ pyenv versions
* system (set by /Users/jihun/.pyenv/version)
  3.5.2

pyenv versions명령은 컴퓨터에 설치된 python version 리스트를 보여준다.

$ pyenv install --list
$ pyenv install 3.5.2

–list 옵션으로 설치할 수 있는 python리스트를 확인하고 원하는 version을 지정하여 설치한다.

$ pyenv shell 3.5.2
$ python -V
Python 3.5.2

pyenv shell 뒤에 사용하고 싶은 version을 입력하여 실행하면 해당 python version이 적용된다. python version 확인 명령(python -V)을 통해 제대로 적용 됐는지 확인한다.


virtualenv

Virtual Python Environment builder. 다양한 파이썬 환경을 구축하고 사용할 수 있도록 해준다. 프로젝트마다 독립된 개발환경을 제공하기 때문에 프로젝트들의 환경변수들이 꼬이는 일이 발생하지 않는다.
단독으로 virtualenv을 사용할 수도 있지만 여기서는 pyenv-virtualenv 를 사용하여 pyenv로 virtualenv까지 관리한다.

설치하기

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

사용하기

$ pyenv virtualenv 3.5.2 virtualenv-test-3.5.2
$ pyenv versions
* system (set by /Users/jihun/.pyenv/version)
  3.5.2
  3.5.2/envs/virtualenv-test-3.5.2
  virtualenv-test-3.5.2

‘pyenv virtualenv PYTHON_VERSION NAME ‘명령으로 새로운 개발 환경을 만들고 생성된 것을 확인한다

$ pyenv activate virtualenv-test-3.5.2
(virtualenv-test-3.5.2) ... $ python -V
Python 3.5.2
(virtualenv-test-3.5.2) ... $ pip install django
(virtualenv-test-3.5.2) ... $ pip list > requirements.txt
(virtualenv-test-3.5.2) ... $ pyenv deactivate

activate를 통해 만들어진 가상환경을 실행시킨다. 필요한 패키지들을 설치하고 requirements.txt를 생성한다. 반대로 빠져나올 때는 deactivate명령을 사용한다.

$ pip install -r requirements.txt  

설치 해놨던 동일한 패키지들을 다른 환경에서도 위의 명령으로 간편하게 사용할 수 있다.


autoenv

pyenv, virtualenv를 사용하다 보면 activate하는 것을 잊어버리는 경우가 빈번하고 매번 설정하는 것이 번거롭다. autoenv는 특정 프로젝트 폴더로 들어가면 자동으로 개발 환경을 설정해준다.

설치하기

$ brew install autoenv

$ echo 'source /usr/local/opt/autoenv/activate.sh' >> ~/.bash_profile
$ source ~/.bash_profile

사용하기

# 프로젝트 폴더 : env_test

$ cd env_test
$ touch .env
$ echo "pyenv activate virtualenv-test-3.5.2" > .env
autoenv:
autoenv: WARNING:
autoenv: This is the first time you are about to source /Users/jihun/Development/env_test/.env:
autoenv:
autoenv:   --- (begin contents) ---------------------------------------
autoenv:     pyenv activate virtualenv-test-3.5.2
autoenv:
autoenv:   --- (end contents) -----------------------------------------
autoenv:
autoenv: Are you sure you want to allow this? (y/N) y

.env파일의 내용은 해당 파일이 존재하는 폴더로 이동할 때마다 실행된다. 따라서 pyenv, virtualenv를 따로 설정해주지 않아도 프로젝트 폴더로 이동하면 자동으로 개발 환경이 설정된다.
(.env 파일은 .gitignore에 추가하면 좋을 것 같다)


참고자료

https://dobest.io/how-to-set-python-dev-env/

Upstart를 이용하여 부팅 시 실행되는 프로세스 설정하기

Ubuntu에서 Upstart를 이용하는 방법을 예제를 통해 알아보자.작업 폴더 위치$ pwd/home/ubuntu/upstart_testUpstart 스크립트 작성스크립트는 /etc/init에 만들고 확장자는 .conf로 해야한다./etc/in...… Continue reading

Previous Post
Markdown Editor for Mac

Published on September 30, 2016