====== PyEnv ======
* https://github.com/yyuu/pyenv
* [[python:virtualenv|Python VirtualEnv]] 를 포괄하는 Python 인스턴스 환경 관리.
* 파이썬 버전과 의존성으 격리할 수 있다.
* pyenv는 Python을 통째로 사용자 디렉토리에 설치한다. : 즉, 여러가지 JVM 설치와 비슷하다고 보면 된다.
* virtualenv는 이미 존재하는 Python 설치본에 대해 링크만 걸어서 독립된 프로젝트 환경을 구성하고 해당 가상환경의 ''site-packages''에 라이브러리들을 추가하여 하나의 독립된 프로젝트 환경을 만드는 형태이다. : 즉, 신규 Java 프로젝트를 만들고 거기에 필요한 각종 라이브러리를 JVM 설치본과는 독립적으로 구성해 넣는 것이라고 보면된다.
===== Install =====
==== pyenv installer 사용하기 ====
* [[https://github.com/yyuu/pyenv-installer|pyenv-installer]]
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
* update
pyenv update
* remove
rm -rf ~/.pyenv
끝난 뒤에 ''~/.bashrc 혹은 ~/.bash_profile''에 설치 마지막에 나오는 메시지대로 스크립트를 추가해준다. 현재는
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
===== 사용 =====
==== 운영체제 준비 ====
운영체제 자체에 Python을 컴파일할 수 있는 준비가 돼 있어야 한다.
[[https://github.com/yyuu/pyenv/wiki/Common-build-problems|pyenv common build problems]]
For Ubuntu/Debian
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm
==== Python 설치 ====
# 설치할 수 있는 파이썬 버전들
pyenv install --list
# 특정 버전 설치
pyenv install [versoin]
# 설치된 파이썬 버전들
pyenv versions
==== 사용 ====
# 현재 사용자의 전역 Python 버전
pyenv global 3.4.2
# 시스템에 설치된 기본 Python
pyenv global system
# 현재 shell 상의 버전 변경
pyenv shell 2.7.9 # 현재 shell을 벗어나면 초기화됨.
# 현재 사용중인 버전 확인
pyenv version
# 특정 디렉토리에서의 파이썬 버전 지정
# 특정 디렉토리에 진입해서 python 관련 명령을 실행하면 local로 지정된 파이썬 인스턴스가 실행된다.
mkdir newproject
cd newproject
pyenv local 2.7.9 # 이 디렉토리에 .python-version 이라는 파일이 생성되면서 버전 지정
===== pyenv-virtualenv =====
* [[https://github.com/yyuu/pyenv-virtualenv|pyenv-virtualenv]]
* [[linux:autoenv|autoenv]]와 연동하여 Python 프로젝트 진입시점시에 자동으로 virtualenv 환경을 로딩하게 할 것.
==== 설치 ====
# pyenv-installer 사용시 자동 설치됨. 아래 clone 작업 불필요.
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
# .bashrc 혹은 .bash_profile에 다음 추가
eval "$(pyenv virtualenv-init -)"
==== 사용 ====
# 가상환경 생성 Python 버전 지정
pyenv virtualenv 2.7.7 [이름]
# 가상환경 생성 현재 python 환경으로
pyenv virtualenv [이름]
# 가상환경 사용
pyenv shell [이름]
# 가상환경 목록
pyenv virtualenvs
# 가상환경 활성화/비활성화 - 평소에 안써도 되는데 가끔 꼭 필요할 때가 있음
pyenv activate [이름]
pyenv deactivate
# 가상환경 삭제
pyenv uninstall [이름]
===== 참고 =====
* [[http://amaral-lab.org/resources/guides/pyenv-tutorial|pyenv Tutorial]]
* [[http://davebehnke.com/python-pyenv-ubuntu.html|Building Python on Ubuntu with pyenv]]
* [[https://blog.ansuchan.com/how-to-set-python-dev-env/|pyenv + virtualenv + autoenv 를 통한 Python 개발 환경 구축하기]]
* [[http://www.sitepoint.com/virtual-environments-python-made-easy/|Virtual Environments in Python Made Easy]]
* [[https://mintguide.org/tools/921-pyenv-simple-python-version-management.html|PyEnv - simple python version management]]
* [[https://medium.com/@visiodeibc/pyenv-%EC%82%BD%EC%A7%88%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EB%B2%84%EC%A0%84%EA%B4%80%EB%A6%AC%EC%99%80-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EB%8A%94-%EB%B2%95-641c451512e6|Pyenv 삽질기… 파이썬 버전관리와 가상환경 구축하는 방법]]