반응형
pyenv, virtualenv, autoenv 이게 다 뭔데?
- 프로그래밍을 하다보면, 내가 사용해야하는 언어나 패키지의 여러 버전을 사용해야 될 때가 있다.
- 예를 들어, 내가 두 개의 프로젝트에 참여하고 있는데, 하나의 프로젝트에서는 Python 2.7을 사용하고 있는데, 다른 프로젝트에서는 Python 3.8을 사용하고 있다면 어떻게 해야할까?
- 프로그래밍을 할때마다 일일이 Python을 삭제 했다가 버전에 맞는 것을 새로 설치해야할까?
- 생각만해도 끔찍하다.
- 스위치를 딸깍 누르는 수준으로 쉽게, 원하는 버전의 언어나 패키지를 썼으면 좋겠다.
- pyenv, virtualenv, autoenv는 다 그런 목적으로 태어났다.
그러면 세 개의 차이는 뭔데?
- 위의 예시처럼 Python의 버전을 그때 그때 바꿔주고 싶다면 pyenv를 사용한다.
- 만약 바꿔야 되는 패키지가 Python이 아니라, Django와 같은 언어 외의 프레임워크나 패키지라면 virtualenv를 사용한다.
- pyenv, virtualenv는 명령어 한줄 정도로 버전을 바꿀 수 있게 쉽게 되어있지만, 어떤 개발자들에게는 그 명령어를 입력하는 것 조차 귀찮다. 그래서 서로 다른 프로젝트를 수행했다면/하고있다면, 각 프로젝트가 어차피 나누어져있을테니, 프로그래밍을 하기위해, 해당 프로젝트의 디렉토리 진입하는 것 만으로도 그 프로젝트 환경에 맞는 버전이 셋팅되도록 하는 것이 autoenv이다.
설치 및 설정 방법
- pyenv
- pyenv는 window를 지원하지 않는다. 해당 포스팅은 mac os를 기준으로 설명하겠다.
- pyenv를 설치하기 위해서는 homebrew를 사용해야한다.
- brew update
- brew install pyenv
- 쉘 설정
- (zsh 쉘의 경우 ~/.zshenv 또는 ~/.zshrc로 경로 변경해야 함.)
- $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
- $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
- $ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
- 설치 가능한 python 목록 확인
- pyenv install —list
- 파이썬 설치
- pyenv install [파이썬 버전]
- 설치한 파이썬 목록
- pyenv versions
- 특정 버전 삭제
- pyenv uninstall [파이썬 버전]
- 지금 내가 로컬에서 사용할 버전 설정
- pyenv global [파이썬 버전]
- 글로벌이라고 표현하는 이유는, 나의 로컬 PC를 전체라고 했을때, 가상 환경과 그곳에 적용되는 버전은 그 전체의 부분들이다. 부분에 해당되는 것은 로컬이라는 전체에 적용한다는 의미로 global이라는 키워드를 사용한다.
- pyenv-virtualenv
- pyenv가 Python 버전만을 바꾸어주는 것이라면, pyenv-virtualenv는 패키지들의 버전도 바꿔주기 위해 사용하는 것이다.
- pyenv의 목록에 virtualenv가 포함되기 때문에, pyenv를 먼저 설치한 후 virtualenv를 설치한다.
- pyenv-virtualenv 설치
- brew install pyenv-virtualenv
- 가상 환경 생성
- pyenv virtualenv [version] [가상환경 이름]
- pyenv virtualenv [가상환경 이름]
- 가상 환경 삭제
- pyenv uninstall [가상환경 이름]
- 가상 환경 실행 및 비활성화
- source activate [가상환경 이름] // 가상환경 실행
- deactivate [가상환경 이름] // 가상환경 비활성화
- autoenv
- virtualenv를 통해 격리시킨 프로젝트 최상위 위치에서, .env 파일 생성
- 해당 프로젝트로 진입할 때, .env에 입력된 스크립트가 자동으로 실행되면서, 개발자가 따로 명령어를 칠 필요가 없게 되는 것이다.
- echo “Python Pyenv > MyProject 진입”
- pyenv shell [프로젝트 이름]
- pyenv activate
- virtualenv를 통해 격리시킨 프로젝트 최상위 위치에서, .env 파일 생성
References
- Python 기본 환경 구축하기 (pyenv, virtualenv, autoenv)
- [Python] 가상 환경에 대한 이해: pyenv, virtualenv, anaconda
반응형
'Programming Language > Python' 카테고리의 다른 글
[파이썬/Python] List 형태의 String을 List로. List 형태의 Dict를 Dict로. (1) | 2020.05.21 |
---|---|
파이썬 메타클래스 쉽고 깊게 이해하기, Python Metaclass A to Z (3) | 2020.03.16 |
파이썬 문자열 조작하기 (0) | 2020.03.09 |
virtualenv, pipenv 그리고 pyenv (0) | 2020.03.03 |
파이썬, 파일 읽고 쓰기 (0) | 2020.03.02 |