패키지 및 버전 관리
프로젝트를 진행하다보면 필요한 파이썬 버전이 상이할 때가 있다. 어떤 모듈을 쓰기 위해서는 파이썬 2버전이 필요하고, 또 다른 모듈은 파이썬 3버전이 필요한 이런 상황이 있다. 그러나 PC에는 파이썬을 설치하면 이전 버전의 파이썬은 자동으로 지워지고 새로운 버전을 설치한다. PC 내에는 여러 버전의 파이썬을 설치할 수는 없을까?
이 같은 고민을 하는 사람들을 위해 파이썬은 virtual environment(가상 환경)을 지원하다. 하나의 디렉토리를 격리된 가상환경으로 구현하는 것이다. 즉, 프로젝트별로 환경을 구성할 수 있다.
파이썬에서 venv
모듈은 가상 환경을 만들고 관리하는데 사용된다. venv
는 파이썬3에서 지원하는 모듈로 만약 파이썬2를 사용중이라면, virtualenv
를 사용하면 된다.virtualenv
는 내장 모듈인 venv
과 다르게 pip
으로 따로 설치를 해줘야한다.
venv
가상 환경 만들기(venv)
python<사용할 파이썬 버전> -m venv <가상 환경 경로 & 가상 환경 이름>
venv
모듈을 사용해서 새로운 가상 환경을 생성하는 명령어이다. 만약 파이썬 2를 사용하고 싶으면 파이썬 2를 설치한 뒤 python2 -m venv .venv
를 하면 된다.가상 환경 이름만 적을 경우 위 명령어를 실행한 폴더에 가상 환경이 생긴다. 이를 원치 않는 경우 미리 경로로 이동하여 위 명령어를 수행하던가, 가상 환경 이름 앞에 경로를 같이 기입하면 된다. 파이썬 공식 문서에는 가상 환경의 이름을 .venv
로 설정하는 것을 추천한다. 물론 다른 이름을 써도 무관하다.
그럼 해당 경로에 가상 환경 이름으로 된 폴더가 생기고, 그 안에 파이썬 인터프리터, 표준 라이브러리 등 다양한 파일이 생긴다.
가상 환경 들어가기(venv)
windows
<가상 환경 이름>\Scripts\activate.bat
MacOS or Unix
source <가상 환경 이름>/bin/activate
위 명령어를 수행하면 가상 환경에 들어간다. 참고로 이 스크립트는 bash
쉘 용으로 작성되어, csh
또는 fish
쉘을 사용하는 경우 activate.csh
, activate.fish
를 사용하면 된다.
가상 환경에 들어가면 위 사진처럼 명령 프롬프트가 바뀌는 것을 볼 수 있다. 또한 자동으로 파이썬을 설치하기 때문에 바로 파이썬을 사용할 수 있다.
가상 환경에 패키지 설치(venv)
python -m pip install requests python -m pip install requests==2.6.0 python -m pip install --upgrade requests
원하는 모듈을 설치하거나 업데이트가 가능하고 특정 버전으로 설치도 가능하다.
venv 특징
venv
의 가장 큰 장점은 파이썬 내장 모듈이라는 점이다. 따로 무언가를 설치할 필요 없이 바로 가상 환경을 만들 수 있다. 다만, 패키지의 버전이 아닌 파이썬의 버전을 상이하게 하려면 해당 파이썬 버전을 따로 다운받아 설치를 해야하는 과정이 필요하다. venv
는 현재 시스템에 설치되어있는 파이썬 버전으로 가상 환경을 만들어 주기 때문이다.
패키지 버전만 다르게 환경을 구성하고 싶다면, venv
도 좋은 방법이나, 파이썬 버전까지 다르게 구성하고 싶다면 아래에서 설명하는 conda
를 추천한다.
Conda
원래 아나콘다라는 python
, R
언어로 데이터 사이언스 분야의 패키지들의 모음을 제공하는 데이터 과학 툴킷에 패키지 및 환경 관리를 해주는 시스템이다. 그래서 원래는 python
의 패키지 관리 문제를 해결하기 위해 만들어졌지만, 현재는 파이썬뿐만 아니라 R
, Ruby
, Lua
, Scala
, Java
, JavaScript
, C / C ++
등 다양한 언어를 지원한다.
어쨌든 여기서 아나콘다를 설치해야 conda를 사용할 수 있다. 또한 콘다를 사용하는 방법에 대해 문서화도 잘 되어있다.
가상 환경 만들기(Conda)
conda activate conda deactivate
conda activate
는 conda
환경을 활성화 하는 것이다. 반대로, deactivate
는 비활성화 시키는 것이다. 이는 아나콘다를 설치하면 기본적으로 만들어지는 환경(base
)으로 이 위에 우리가 프로젝트를 하며 생성할 가상 환경을 만드는 것이다.
conda info --envs
위 명령어를 사용하면 현재 생성된 가상 환경을 출력해 준다. 현재는 아나콘다가 설치되면 기본으로 설치된 base
외에는 가상 환경이 존재하지 않는다. *
표시가 되어있는 환경이 현재 active 되어있는 환경이다.
conda create -n <가상 환경 이름> python=<파이썬 버전> conda create -n myenv scipy
만약 파이썬 3.6버전으로 myenv
라는 가상 환경을 구성하려면 conda create -n myenv python=3.6
을 입력하면 된다. 여기서 앞서 살펴봤던 venv
보다 편리한 점이 들어난다. 바로 따로 파이썬 패키지를 설치하지 않아도 콘다에서 자동으로 가상 환경에 설치를 해준다!
가상 환경 들어가기(Conda)
conda acivate <가상 환경 이름> conda deactivate
base
환경에 들어간 것처럼 conda acivate <가상 환경 이름>
을 사용하면 가상 환경에 들어갈 수 있다. 반대로 나가기 위해서는 따로 가상 환경의 이름을 설정 하지 않아도 base
환경으로 나가게 된다.
base
환경은 현재 시스템에 설치된 python 3.8 버전이지만, 가상 환경인 myenv
에는 python 3.6이 설치된 것을 볼 수 있다.
가상 환경에 패키지 설치(Conda)
conda로 설치
conda install scipy conda install scipy=0.15.0 conda install scipy curl # 여러 패키지를 한번에 설치 conda install scipy=0.15.0 curl=7.26.0 # 여러 패키지의 버전을 설정해 한번에 설치
pip 으로 설치
pip install requests pip install requests==2.6.0 pip install --upgrade requests
conda
와 pip
둘 다 사용할 수 있지만, conda
로 설치할 수 있는 패키지를 모두 설치한 뒤, pip
을 이용해 남은 패키지를 설치하기를 권장하고 있다.
Conda 특징
아나콘다를 설치해야한다는 것이 가장 큰 단점이다. 데이터 사이언스 관련된 패키지를 사용할 일이없다면 굳이...? 용량도 상당하다. 배보다 배꼽이 큰 느낌...?
다만, 어떤 OS에서든 패키지 관리를 할 수 있고, pip
이나 venv
의 경우 파이썬 한정이지만, conda
의 경우는 앞서 봤듯 많은 언어를 지원한다.
그 외...
Author And Source
이 문제에 관하여(패키지 및 버전 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sawol/파이썬에서의-패키지-및-버전-관리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)