파이썬은 다수의 서브 버전이 존재하고 엄청난 수의 패키지를 만들고 공유하고 있음. 이러한 패키지들 조차 여러 버전을 갖고 있음
개발 언어와 런타임 및 라이브러리가 전역적으로 설치되고 운영되기 때문에 파이썬 런타임 버전과 라이브러리 충돌 문제가 빈번하게 발생함.
위 문제를 해결하기 위해 애플리케이션별로 독립적인 환경을 사용할 수 있도록 환경을 가상화하는 방식을 통해서 해결 가능.
- pyenv(window에서는 x)
- 파이썬 버전을 관리하는 툴.
- 하나의 컴퓨터에 다양한 파이썬 버전을 설치하고 관리.
- 프로젝트 홈페이지: https://github.com/pyenv/pyenv
- pyenv-virtualenv
- virtualenv은 파이썬 환경을 격리하는 툴.
- pyenv-virtualenv은 virtualenv의 pyenv 확장 플러그인.
- 파이썬 버전과 라이브러리의 완전한 격리 환경을 제공.
- autoenv
- autoenv는 디렉터리 이동 시 실행되는 스크립트
- pyenv-virtualenv 사용 시 불편한 수작업을 자동화.
- 특정 프로젝트 폴더로 들어가면 .env파일 실행하여 가상환경 활성화.
* pip : package management system
- 저장소로부터 파이썬 패키지를 받아 설치하는 패키지 관리 도구
1. pyenv
- 하나의 컴퓨터에서 여러 파이썬 런타임 버전을 운영할 수 있다.
- 파이썬을 쉽게 바꿔서 쓸 수 있게 해주는 도구
- 파이썬 버전에 대한 의존성을 해결할 수 있다.
2. virtualenv
- 로컬에 다양한 파이썬 환경을 구축할 수 있도록 도와준다.
- 프로젝트별로 패키지들의 충돌을 막아주기 위한 가상환경 가상환경
- 각 프로그램별로 완전히 독립적인 가상의 환경을 만들어냄
- python, pip, PyPI부터 설치된 라이브러리들의 복사본을 만듦으로써, 독립적인 파이썬 환경을 만들어주는 도구
3. autoenv
- 스크립트를 이용해서 설정한 프로젝트 폴더로 들어가면 .env파일을 찾아 자동으로 개발 환경을 로딩해준다.
=======================
Conda vs Venv
venv
- 파이썬의 환경관리자
- 파이썬 개발만을 위한 격리 된 환경을 만듬
conda
- 패키지 및 환경관리자
- 이론적으로 모든 언어에 대해 격리 된 환경을 만듬
명령어 차이점
https://conda.io/projects/conda/en/latest/commands.html#conda-vs-pip-vs-virtualenv-commands
'python' 카테고리의 다른 글
OOP(객체 지향 프로그래밍) (0) | 2020.10.05 |
---|---|
Python 변수 (0) | 2020.09.29 |
웹 API (0) | 2020.02.21 |
crawling and scraping (0) | 2020.02.20 |
google API(지도활용) (0) | 2020.02.20 |