728x90

참고:

[virtualenv]파이썬에서 패키지를 관리하는 virtualenv

 

파이썬을 사용하는 사람들은 아나콘다를 자주 사용한다.

왜 아나콘다를 사용하는가? 일단 그 이야기부터하고 넘어가자.

 

사실 일반적으로 파이썬으로 프로그래밍을 할때 아나콘다를 사용하지 않아도 무방하다.

그 이유는 뭐... 해본사람들은 다 알거다. 그러나 파이썬을 계속하다보면 아나콘다 없이 사용하기는 조금 빡세다.

필자가 겪었던 아나콘다를 사용하지 않아서 불편했던 예시는 아래와 같다.

 

1.파이썬의 버전을 다르게 사용해야하는 경우.

특정 라이브러리가 파이썬 버전에 종속되는 경우가 있다. 가령 텐서플로우 윈도우버전은 파이썬 3.5버전 까지만 있다.

 

2.패키지 이름이 겹치는 경우

예를들면 pyserial과 serial은 둘다 serial이라는 클래스를 쓴다. 이름이 완전하게 겹치므로 하나는 빼야한다.

근데 글로벌로 쓰다보면 이런걸 해결할 수 없다. 따라서 각각의 환경으로 사용해줘야한다.

 

3.패키지를 로컬로 분리하고 싶을 경우

일반적으로 pip명령어는 글로벌로 설치가 된다. 그런데 난 배포를 할때 패키지까지 같이 배포를 하고싶다면 문제가된다.

 

4.위의 모든것을 다 컨트롤해야하는 상황

사실 1~3번까지 일반적인 파이썬에서 다 가능하다. 그런데 그걸 일일히 관리하면서 신경쓰면서 하는건 귀찮다.

이 모든것을 해결하고 싶다면 아나콘다라는 선택지가 가장효율적이다.

 

아나콘다는 위의 문제점들을 모두 해결해준다.

아나콘다는 파이썬이전에 하나의 컨테이너로서 작동을 하는데 사용하기 전에 무조건 환경을 설정하고 사용한다.

이 환경설정에 파이썬 버전을 선택할 수 있고 그 다음부터 pip 명령은 이 패키지 내부에서만 작동되며 로컬로 설치가 된다.

즉 여러 문제점을 한방에 해결할 수 있는 좋은 시스템인 것이다.

이 좋은 아나콘다를 설치하는 방법. 당연히 홈페이지에 가서 설치하는 방법이 제일 먼저 떠오른다.

 

 

https://www.anaconda.com/download/로 가서 다운로드받는다.

 

 

설치해준다.

 

 

환경변수까지 등록해주면 끝난다. 설치는 정말 쉽다.

물론 위와 달리 패키지관리자로 설치하는 방법도 있다.

 

윈도우즈 - choco install anaconda3

 

맥에서는 터미널에 설치하기는 조금 껄끄럽다.

따라서 그냥 홈페이지에서 다운받는 것이 편하다.

 



맥버전을 다운받자,

 

 

pkg파일로 되어있어서 설치는 간단하다.

 

 

설치를 진행하여 주자.

 

 

버전을 확인하자.

 

이제 설치가 끝났으니 간단하게 사용하는 방법부터 익혀보자.

가장 먼저 가상환경을 만들어줘야한다.

여기서 버전을 명시적으로 선언해줘야하는게 중요하다.

 

conda create -n <환경명> python=<버전(ex:3.5이나 2.7 등)>

 

이렇게 환경을 만들어준 다음에는 끝난게아니다.

내가 제대로 환경을 만들었는지 확인해주는게 중요하다.

 

conda env list

 

내가 만든 환경이 리스트에 존재한다면 성공적으로 만들어 진 것이다.

이제 활성화 시켜보자.

 

activate <환경명>

 

만약 위가 안된다면 아래와 같이하자.

 

source activate <환경명>

 

이제 환경이 활성화가 된다. 활성화가 되면 아래 그림처럼된다.

 

 

콘솔을 잘보면 콘솔앞에 괄호()가 쳐져있고 그 안에 환경명이 적혀있는걸 볼 수 있다. 그러면 환경이 활성화 된것이다.

이제 이 환경상태에서 pip를 사용하는 것은 이 환경내부에서만 작동한다.

만약 환경에대한 설정을 변경하는것도 이 환경만 당연히 적용된다.

다른 환경에서 하고싶으면 환경을 종료해줘야한다.

 

deactivate

 

만약 안된다면 아래와 같이 타이핑하자.

 

source deactivate

 

이제 이 환경을 키고 python명령어로 파이썬을 실행시킬 수 있다.

 

python

 

 

보면 알겠지만 파이썬 콘솔의 앞부분을 보면 아나콘다라고 되어 있다. 즉 아나콘다 내의 가상환경에서 실행되고 있음을 알 수 있다.

 

+ Recent posts