파이썬은 다양한 편리한 패키지들을 지원한다. 특히 Data Science와 관련된 수많은 모듈들을 지원하는데, 이것들은 파이썬이 지금 세계에서 가장 인기 있는 언어 중 하나로 자리매김을 하는데에 큰 역할을 하였다. 하지만 대부분의 개발환경이 그렇듯, 파이썬에서도 사소한 모듈들의 버전 차이로 인해 에러가 발생하는 경우가 있다. 때문에 각 패키지들 간의 버전 간의 호환성을 유지하는 것은 매우 중요한 일이다.
하지만 매번 프로젝트를 진행할 때마다 root에 설치되어있는 다양한 파이썬 패키지들 버전을 새로 설치하고 변경한다면 매우 비효율적인 일이 될 것이다. 그래서 사용하게 되는 것이 바로 가상 환경이다.
가상 환경은 말 그대로 가상의 파이썬 공간이다. 즉, 분리되어진 가상의 공간에 프로젝트마다 필요한 파이썬 모듈들을 설치할 수 있다. 예를 들어 내가 tensorflow를 사용하여 머신러닝 프로젝트를 진행하려 하는데, A라는 프로젝트에서는 1.0.0 버전이, B라는 프로젝트에서는 1.2.0 버전이 필요하다면, 우리는 두 개의 파이썬 가상 환경을 만들어서 각각 다르게 필요한 라이브러리들을 설치할 수 있다.
이러한 파이썬 가상 환경 툴에는 여러가지가 있는데, 그중 가장 대표적인 것들을 살펴보도록 하겠다.
pyenv
※ window는 지원하지 않는다. (해당 포스팅은 Mac os 기준으로 설명하겠다.)
먼저 필자가 현재 사용하고 있는 파이썬 버전 관리 시스템이다. 때때로 레거시 프로젝트를 진행할 때면 구 버전의 파이썬을 이용해야 할 경우가 생긴다. 이럴 경우 pyenv는 파이썬의 버전을 자유롭게 변경할 수 있도록 도와준다. 마치 리볼버 권총에 파이썬 버전들을 여러 가지 장전해두고 필요에 따라 원하는 탄을 발사할 수 있도록 하는 것과 유사하다. (이해에 도움이 되는 예시인진 모르겠다..:D)
먼저 pyenv를 설치하기 위해서는 Home brew를 사용해야한다. 만약 home brew를 설치하지 않았다면 아래의 url에 접속해서 가이드를 따라 설치하도록 하자.
homebrew가 있다면 pyenv를 간편하게 설치할 수 있다. 아래의 코드는 homebrew를 최신 버전으로 업데이트하고, pyenv를 설치하는 코드이다.
brew update
brew install pyenv
설치 가능한 python 목록 확인하기
pyenv install —list
파이썬 설치
pyenv install <파이썬 버전>
간혹, 안될 경우는 아래의 코드로 설치하도록 하자.
CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
pyenv install -v 3.7.1
설치한 파이썬 목록
pyenv versions
특정 버전 삭제
pyenv uninstall <버전 이름>
파이썬 글로벌 설정(local에서 기본적으로 사용할 버전을 설정)
pyenv global <파이썬 버전>
pyenv-virtualenv
pyenv가 단순히 파이썬 버전을 다양하게 사용할 수 있다면 virtualenv가 바로 이 포스팅에서 소개하려 했던 가상 환경이다. pyenv의 목록에 virtualenv가 들어가기 때문에 pyenv를 먼저 설치해주었다. 그럼 본격적으로 virtualenv를 설치해보도록 하겠다.
※ virtualenv는 프로젝트별로 패키지들의 충돌을 막아주기 위한 가상환경이다.
역시나 brew를 통해 간단하게 install 한다.
brew install pyenv-virtualenv
가상 환경 생성
pyenv virtualenv <version> <가상환경 이름>
pyenv virtualenv <가상환경 이름>
이제 pyenv list에 virtualenv로 만든 가상 환경이 추가되었다. 해당 가상환경은 독립적인 공간으로써 프로젝트에 따라 필요한 패키지들을 서로 다르게 구성하여 편리하게 관리할 수 있다.
가상환경 삭제
pyenv uninstall <가상환경 이름>
가상환경 실행, 비활성화
source activate <가상환경 이름> // 가상환경 실행
deactivate <가상환경 이름> // 가상환경 비활성화
pip
더불어 혹시나 패키지를 설치하는 방법을 모르는 독자를 위해 코드를 남기자면 파이썬은 pip라는 package management system이 있다.
pip를 이용하면 손쉽게 파이썬 패키지들을 설치할 수 있다. 하지만 주의할 점이 있는데, pip와 pip3가 다르다는 점을 유의해야 한다.
pip: python 2.x version
pip3: python 3.x version
레거시 프로젝트를 진행해야 해서 python2 버전이 필요한 것이 아니라면 pip3를 이용해 패키지들을 설치하는 것이 좋다.
pip3 install <패키지 명>
Anaconda
anaconda는 window, mac, linux에서 사용 가능한 패키지 관리 툴이다.
https://www.anaconda.com/distribution/
위의 url에서 install 할 수 있으며 간략하게 명령어들을 살펴보도록 하겠다.
conda version 확인 및 version update
conda --version // 버전 확인
conda update conda // conda 업데이트
conda 가상 환경 생성 및 삭제
// 가상환경 생성
conda create --name(-n) <가상환경 명> <설치할 패키지들: 공백으로 구분>
// 예시
conda create --name emotion python=3.6
// 가상환경 삭제
conda remove --name <가상환경 명> --all // root 계정으로 activate한 이후에 삭제할 것.
conda 가상환경 리스트
// 가상환경 리스트
conda info --env
// 실행
activate <가상환경 명>
// 비활성화
deactivate <가상환경 명>
conda 패키지 설치
conda install <패키지 명>
pip3 install <패키지 명>
conda는 특이하게 conda라는 명령어를 사용해서 python package들을 설치할 수 있다. 그리고 당연히 pip3를 이용해서도 패키지를 설치할 수 있다. 어느 것을 사용하더라도 무방하나, conda와 pip는 서로 다른 path에 패키지들이 설치되므로 한 가지 방법만을 이용해서 패키지들을 설치하도록 한다.
'Language > Python' 카테고리의 다른 글
[Python] Dequeue 사용하기 (0) | 2019.10.24 |
---|---|
[Python] 메서드 지역변수로 할당으로 time complexity 줄이기 (0) | 2019.10.11 |
[Python] Code convention (0) | 2019.10.10 |
[Python] Stack 사용하기 (0) | 2019.10.09 |
[Python] python으로 알고리즘을 공부해야 하는 이유 (2) | 2019.10.09 |