티스토리 뷰

pyenv

pyenv는 로컬환경에서 여러 버전의 python을 설치하여 쉽게 설치하고 사용할 수 있게 해주는 툴이다.

brew install pyenv

 

~/.bash_profile에 아래와 같이 추가해준다.

export PYENV_VIRTUALENV_DISABLE_PROMPT=1
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
$ pyenv install -list  # 설치가능 목록 확인
$ pyenv install 2.7.12  # 파이선 2.7.12 설치
$ pyenv versions  # 설치된 목록 확인
$ pyenv shell 2.7.12  # 파이썬 버전 변경
$ pyenv version  # 현재 버전 확인

 

virtualenv

virtualenv는 독립적인 Python 환경을 구축할 수 있는 툴이다.

서로 다른 dependency 버전을 각 application 마다 설정을 다르게 할 수 있는 것이 장점이다.

 

설치

먼저 virtualenv 를 설치하자.

$ brew install pyenv-virtualenv

 

이제 가상 환경을 만들어주자.

$ pyenv virtualenv 2.7.12 myblog

 

만들어진 가상 환경을 확인해 보자.

$ pyenv virtualenvs
  2.7.12/envs/myblog (created from /Users/googolhkl/.pyenv/versions/2.7.12)
  myblog (created from /Users/googolhkl/.pyenv/versions/2.7.12)

 

아래 명령어로 삭제도 할 수 있다.

$ pyenv uninstall myblog

 

가상 환경을 activate, deactive 하는 방법은 아래와 같다.

$ pyenv activate myblog  # activate
$ pyenv deactivate  $ deactivate

 

Autoenv

autoenv는 특정 디렉터리로 이동시 특정 명령어를 실행해주는 툴이다.

우리의 프로젝트 디렉터리로 이동시 해당 프로젝트에 맞는 환경 설정을 해주도록 해보자.

 

설치

$ git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv
$ echo 'source ~/.autoenv/activate.sh' >> ~/.bash_profile

 

이제 .env 파일이 있는 디렉터리로 이동시 .env 안에 명령어들이 실행될 것이다.

예를들면 ~/test/.env 에 아래와 같이 정의되어 있다면

echo "whoa"

~/test 디렉터리로 이동할 때 마다 콘솔에 "whoa" 텍스트가 찍히게 될 것이다.

 

우리의 프로젝트 디렉터리에 .env를 만들고, 해당 파일내에서 virtualenv를 실행해도록 해보자.

위에서 먼저 myblog라는 환경을 만들었으니 그대로 이용하기로 하자. 필자는 pyenv activate myblog 가아닌 pyenv shell myblog 로 실행시켰다. (이미 activate라는 경고가 보기 싫어서)

pyenv shell myblog  # or pyenv activate myblog

이제 ~/test 디렉터리로 이동할 때 마다 자동으로 myblog 가상 환경이 설정될 것이다.

 

그리고 디렉터리에서 나올 때 실행되게 할 수 있는데, 이것은 아직 많이 알려지지 않았다. 

2017.4.5일에 이 기능이 추가됐는데 최근 글에서도 찾아보기는 힘들었지만, commit history에 기능이 추가된 걸 확인할 수 있다.

~/.bash_profile에 source {AUTOENV_DIR}/activate.sh 전에 AUTOENV_ENABLE_LEAVE 라는 변수에 null이 아닌 string을 넣어주자. 필자는 아래와 같이 설정했다.

...
export AUTOENV_ENABLE_LEAVE='"enabled"'
source ~/.autoenv/activate.sh  # autoenv 설정
...

 

이제 .env.leave라는 파일에 아래와 같이 설정해준다.

pyenv shell system  # or pyenv deactivate

 

댓글
공지사항
최근에 올라온 글
Total
Today
Yesterday
글 보관함