아나콘다 배포판을 설치해 가상 환경을 구축하고 주피터 노트북에 연결해보자

아나콘다(Anaconda)란?

Python을 이용해 여러 프로젝트를 진행할 때 우리는 Python을 설치하고 여러 패키지를 pip을 통해 설치한다. 하지만 이때 사용하는 Python 버전과 패키지의 버전이 각 프로젝트 별로 다를 수 있어 호환성 문제가 발생할 수 있고, 프로젝트를 진행하면서 각 프로젝트에 필요한 패키지보다 많은 패키지가 설치되어 있을 수 있기에 필요 이상으로 공간을 차지할 수 있다.

이를 해결하기 위한 방법으로 아나콘다가 있다. 아나콘다란 수학, 과학 분야에서 사용되는 여러 패키지를 묶어 놓은 파이썬 배포판으로 이를 통해 가상환경을 만들고, 그 안에 필요한 패키지들을 설치하여 개발환경을 조성할 수 있으며,구성요소로는 아래 그림과 같이 크게 4부분으로 나뉠 수 있다. 그 중에서도 Data Science 라이브러리는 Jupyter와 같은 IDE 개발도구와 Numpy, SciPy 같은 과학 분석용 라이브러리, Matplotlib 같은 데이타 시각화 (Data Visualization) 라이브러리, TensorFlow 같은 머신 러닝(Machine Learning) 라이브러리 등을 포함하고 있다.

간단한 예시

그렇다면 아나콘다는 Python과 정확히 무슨 차이가 있는 것일까?

간단한 예를 들어보자.

내가 취미생활로 밴드와 축구를 하기 위해 밴드에 필요한 보컬,드럼,베이스,일렉,건반을 할 사람들과 축구를 위해 필요한 공격수, 미드필더, 수비수, 골키퍼를 할 사람들을 단톡방에 초대를 해야 한다고 생각해보자.

이때, Python의 방식은 보컬,드럼,베이스,일렉,건반을 할 사람들과 공격수, 미드필더, 수비수, 골키퍼를 할 사람들을 A라는 동일한 단톡방에 초대하는 것이다. 여기서 만약 밴드를 해체하게 되면 보컬,드럼,베이스,일렉,건반이 일일이 단톡방에서 나가야하기에 이와 같은 방식은 관리에 있어서 문제가 생길 여지가 있다.

반면, 아나콘다(Anaconda)의 방식은 밴드에 필요한 보컬,드럼,베이스,일렉,건반을 할 사람들을 A라는 단톡방에 초대하고, 축구를 하기 위해 필요한 공격수, 미드필더, 수비수, 골키퍼를 할 사람들을 B라는 단톡방에 초대하는 것이다. Python의 방식과 달리 만약 밴드를 해체하고 싶으면 단순히 A라는 단톡방을 삭제하면 된다.

가상환경 생성과 사용법

우선 아나콘다 설치를 위해 공식 홈페이지로 들어가서 개인의 환경에 맞는 OS를 확인해보고 설치하자. (저는 C드라이브에 설치했습니다.)

윈도우 시작메뉴에 Anaconda Prompt와 Jupyter Notebook이 있다면 잘 설치된 것이다.

다음으로는 아래의 내용들을 통해 가상환경의 생성과 패키지의 설치 및 실행방법, 가상환경 목록 확인과 가상환경의 삭제 방법에 대해 알아보자.

conda create -n "가상환경 이름"  "(옵션)추가로 설치할 패키지들"
conda create -n test python=3.6 keras tensorflow pandas

우선 위와 같은 conda 명령어를 통해 test 라는 이름의 가상환경을 생성할 수 있고, 그 환경에는 아래와 같은 패키지들을 설치된다.

  • python 3.6버젼
  • keras
  • tensorflow
  • pandas

이러한 패키지들을 설치하고 아래와 같은 명령어를 통해 해당 가상환경을 실행할 수 있다.

conda activate test

참고로 아래 사진과 같이 Anaconda Navigator의 Environments 탭에서 활성화 하고자 하는 가상환경의 Open Terminal 버튼을 눌르면 해당 가상환경이 활성화 된 상태에서 터미널이 실행된다.

만약 가상환경을 더 이상 사용하지 않을 것이라면 아래의 명령어를 통해 가상환경을 비활성화 시키고 일반 터미널로 돌아간다.

conda deactivate

또한 생성한 가상환경들의 목록은 아래와 같은 명령어를 통해 확인할 수 있으며

conda info --envs
또는
conda env list

아래와 같은 명령어를 통해 가상환경의 삭제도 가능하다.

conda env remove -n "가상환경 이름"
conda env remove -n test

Jupyter Notebook

Jupyter Notebook은 에디터 프로그램으로써 오픈 소스이며 웹 기반 플랫폼이다. 이러한 Jupyter Notebook은 아나콘다를 설치하면 자동으로 설치되며 코드를 블록 단위로 실행해서 인터프리터 언어인 Python의 특징을 극대화한다. 또한, 구글 Colab과 인터페이스가 유사하며 사용이 편리하다는 장점이 있다. 하지만 이러한 Jupyter Notebook의 확장자는 ‘.ipynb’ 로 Python 파일의 확장자 ‘.py’와는 조금 다르다. 이는 블록과 관련된 메타 정보가 담겨있기 때문이다. 따라서 이러한 특성으로 인해 보통 개발은 Jupyter Notebook으로 하고, 나중에 이를 Python 파일로 변환해주는 작업을 거친다.

Kernel 방법

특정 가상환경에 맞는 코드를 Jupyter Notebook에서 사용하려면, 가상환경을 활성화 한 후에 Jupyter Notebook를 실행해야 한다. 하지만 특정 가상환경을 Jupyter Notebook에 연결, 다시 말해서 Kernel 시켜주면 Jupyter Notebook을 실행하고 가상환경을 선택할 수 있을 뿐 아니라 Jupyter Notebook내에서 가상환경의 전환을 자유롭게 할 수 있다.

이렇듯 특정 가상환경을 커널 시켜주기 위해서 우선 Anaconda Prompt에서 연결하고자 하는 가상환경을 활성화 시켜주자.

다음으로 가상환경이 활성화 되어있는 상태에서 아래 코드를 이용해 가상환경에 Jupyter Notebook을 설치해주자

pip install jupyter notebook

가상환경에 Jupyter Notebook 설치가 완료 됐다면 아래 코드를 통해 가상환경과 Jupyter Notebook을 커널연결 해주자.

python -m ipykernel install --user --name "가상환경이름" --display-name "커널출력이름"

여기서 커널출력이름은 Jupyter Notebook에서 보이게 될 이름으로 가상환경이름과 동일하지 않아도 무방하다.

만약 연결한 Kernel을 해제하고 싶다면 아래 코드를 통해 해제해주자. 하지만 이는 Kernel 연결만 해제할 뿐 가상환경을 삭제하지는 않기에 Anaconda상에는 가상환경이 삭제되지 않고 그대로 존재하고 Jupyter Notebook상에서 연결한 커널(가상환경)이 사라진다.

jupyter kernelspec uninstall "가상환경이름"

Jupyter Notebook에 표시되는 커널출력이름이 아닌 가상환경이름을 적어야 함에 유의하자.

커널을 연결하면 위의 사진과 같이 New 버튼을 통해 특정 가상환경에서 작업을 실행할 수 있다.

또한 만약 Git이나 다른 사이트에서 파일을 가져왔을 경우 Jupyter Notebook에서 기본 커널(Python3)로 동작하도록 세팅되어 있는데 위의 사진 처럼 Change Kernel 버튼을 통해 변경하고자 하는 커널을 선택할 수 있다.

Git 연동

만약 Github에서 파일을 가져와 작업을 하고 싶다면 git clone 명령어를 통해 가져올 수 있다. 하지만, 각 가상환경에는 git 명령어가 설치되어 있지 않기 때문에 아래 명령어를 통해 우선 git을 설치해주자.

conda install git

설치 후에는 설치가 잘 되었는지 아래의 명령어를 통해 확인해보자.

git --version

만약 git version 2.40.1.windows.1 처럼 git의 버전이 뜬다면 잘 설치 된 것이다.

그 후에 아래 코드 예시와 같이 git clone 명령어를 통해 Repository를 복사해오자.

git clone "레파지토리 url주소"

필자의 경우 Anaconda를 C드라이브에 설치했기에 C드라이브에 Repository가 복제된다.

.py파일 실행 방법

만약, Python 파일(.py)을 실행하고 싶다면 New버튼을 눌러 notebook(.ipynb 파일)을 만든 후에 해당 파일 명령창에 아래와 같은 명령어를 통해 .py파일을 실행가능하다.

run "실행 하고 싶은 파일 이름".py

그러면 아래 사진과 같이 .py이 실행된 결과물을 얻을 수 있다.

요약

요약하자면 Anaconda Prompt에서 원하는 개발 환경을 갖춘 가상 환경을 activate 시킨 후에 Jupyter Notebook과 커널 다시 말해서 가상 환경과 Jupyter Notebook을 연결시키면 필요한 개발 환경에서 코드를 Run 할 수 있다.

태그:

카테고리:

업데이트:

댓글남기기