안녕세계
[장고 AtoZ] pyenv, virtualenv 본문
[장고 AtoZ] pyenv, virtualenv
Junhong Kim 2018. 2. 2. 17:37pyenv란?
로컬에 다양한 Python 버전을 설치할 수 있도록 합니다.
또한, pyenv
를 사용함으로써 Python 버전에 대한 의존성을 해결할 수 있습니다.
설치
NOTE :
homebrew
를 최신 버전으로 업데이트 후pyenv
를 설치하세요.
$ brew update
$ brew install pyenv
환경변수 추가
$ vi ~/.bash_profile
# pyenv
export PATH="$HOME/.pyenv/bin:$PATH"
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
설치 가능한 버전 리스트
$ pyenv install -list
파이썬 설치
$ pyenv install [python-version]
파이썬 삭제
$ pyenv uninstall [python-version]
파이썬 사용
$ pyenv shell [python-version]
현재 파이썬 버전 확인
NOTE : default로
system
이 설정되어 있으며, 이는 로컬에 설치된 Python입니다.
$ pyenv version
설치된 파이썬 버전 목록
$ pyenv versions
virtualenv란?
로컬에는 단 하나의 파이썬 버전을 설치할 수 있습니다.
예를 들어, 로컬에 Python 3.5.x 버전과 3.6.x 버전을 동시에 사용할 수 없습니다.
즉, ProjectA에서는 Python 3.5.x
버전을 사용하고, ProjectB에서 3.6.x
버전 사용이 불가능합니다.
위 문제점을 해결하기 위해 virtualenv
를 사용합니다.virtualenv
를 사용하면 두 가지 이상의 Python 버전을 내 로컬 프로젝트 각각 적용할 수 있습니다.
설치
NOTE : pyenv를 이용하여 virtualenv까지 관리할 것이므로
pyenv-virtualenv
를 설치합니다.
$ brew install pyenv-virtualenv
환경변수 추가
$ vi ~/.bash_profile
# pyenv-virtualenv
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
가상환경 생성
$ pyenv vritualenv [python-version] [virtualenv-name]
가상환경 확인
$ pyenv virtualenvs
가상환경 사용
$ pyenv shell [virtualenv-name]
가상환경 삭제
$ pyenv uninstal [virtualenv-name]
가상환경 설정/해제
NOTE : 프롬프트 앞에 가상환경 이름이 보이면
activate
상태입니다.
$ pyenv actiavate
$ pyenv deactivate
현재 디렉토리를 특정 가상환경으로 설정
$ pyenv local [virtualenv-name]
NOTE :
pyenv local
명령어를 입력하면 디렉토리에.python-version
파일이 생성됩니다. 이 파일에 작성된 내용을 읽어드려 디렉토리를 해당 가상환경으로activate
하며, 디렉토리를 빠져나오면 자동으로deactivate
됩니다. 수동으로activate
또는deactivate
명령어를 입력할 필요가 없어지기 때문에 이 방법으로 가상환경을 설정하는 것을 추천합니다.
[참고]
https://github.com/yyuu/pyenv
https://github.com/yyuu/pyenv-virtualenv
http://ohgyun.com/701
'Server > Django' 카테고리의 다른 글
[장고 AtoZ] settings.py 파일 분할 (0) | 2018.02.05 |
---|---|
[장고 AtoZ] SECRET KEY 분리 (1) | 2018.02.05 |
[장고 AtoZ] Django 서버 실행 (0) | 2018.02.02 |
[장고 AtoZ] homebrew (0) | 2018.02.02 |
[장고 AtoZ] Intro (0) | 2018.02.02 |