Anaconda

Introduction

Anaconda는 Python 과학 계산 프로그램 플랫폼이다. 컴퓨터 작동 환경을 관리하는 conda를 이용해 numpy, scipy 등 다양한 package를 관리한다. 다양한 과학 계산 프로그램을 이 플랫폼을 이용해 활용할 수 있다. 환경의 개념을 설명하고, Anaconda 설치 방법과 새로운 환경 만드는 방법과 사용하는 방법을 설명한다.

환경(environment)은 프로그램이 실행되는 분리된 가상 공간(isolated virtual space)이다. 프로그램이 실행되는 공간을 분리함으로써 하나의 컴퓨터에 복잡한 의존 관계를 지닌 프로그램들을 실행할 수 있다. 특히, 빠르게 개발되며 다른 사람들의 프로그램을 활발히 활용하는 과학 계산 프로그램 관리를 위해 환경 관리가 필요하다.

프로그램을 개발할 때 다른 프로그램들을 이용할 때, 프로그램 간 의존 관계(dependency)가 발생한다. 예를 들어 프로그램 A를 개발할 때 다른 프로그램 X를 이용했다면, 프로그램 X를 먼저 설치해야 프로그램 A를 설치하고 실행할 수 있다. 즉 의존 관계가 생긴 것이다.

의존 관계가 있는 프로그램을 여럿 설치하면 각 프로그램의 의존관계가 상충(conflict)할 수 있다. 예를 들어 프로그램 X에 의존적인 프로그램 B가 있다고 하자. 한 컴퓨터에 프로그램 A와 B를 설치할 수 있다. 그런데 프로그램 A는 version 1의 X가 필요하고, 프로그램 B는 version 2의 X가 필요하다면, 컴퓨터에 어떤 version의 X를 설치하더라도 두 프로그램을 모두 사용할 수 없다 (Figure 1, 왼쪽).

각 프로그램이 작동하는 환경을 분리함으로써 의존관계 문제를 해결할 수 있다. 프로그램 A를 위한 공간과 프로그램 B를 위한 공간을 분리함으로써 하나의 시스템에서 두 프로그램을 모두 이용할 수 있다 (Figure 1, 오른쪽). 또한, A를 배포할 때, A의 작동을 위해 필요한 프로그램의 목록을 같이 제공하면 어떤 시스템에서도 A를 쉽게 실행할 수 있다. 의존관계 문제와 프로그램 베포 편의를 위해 환경을 관리할 필요가 있다.

Figure 1. 프로그램 의존 관계와 환경 관리

Anaconda 설치

Anaconda는 Python 과학 계산을 위한 대표적인 플랫폼이다. Anaconda 설치 파일은 웹을 통해 다운 받을 수 있다 (download page). Linux system에서는 wget 프로그램을 이용해 URL을 이용해 직접 받을 수도 있다.

1. Get installation file

wget 명령어를 이용해 Anaconda 설치 파일을 다운 받는다.

wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh

2. Installation

다운 받은 설치 파일을 실행한다. 설치 과정 중 다음과 같은 사항을 물어보면 답한다.

  1. 라이센스 동의 여부 -> ‘yes’ 입력
  2. 설치위치 -> enter 키 입력
  3. 초기화 여부 (init) -> ‘yes’ 입력
sh https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh

환경만들기

Conda 명령어를 이용해 새로운 환경을 만든다. 아래 명령어로 다음의 세 가지 과정을 순차적으로 수행할 수 있다.

  1. python version 3.10을 가진 sklearn이라는 이름의 환경을 만들기
  2. sklearn 환경 활성화하기
  3. sklearn 환경에 scikit-learn package 설치하기
$ conda create -n sklearn python=3.10
$ conda activate sklearn 
$ conda install scikit-learn 

참고자료

Conda 환경 자동 활성화 설정

Conda 설치 과정에서 conda 환경이 자동으로 활성화되게 하지 않았다면, 아래 과정을 통해 자동으로 활성화되도록 설정할 수 있다.

Vi 같은 linux editor를 이용해 ‘.bashrc’를 열고, 아래 내용을 파일 하단에 입력한다.

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/yourusername/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/yourusername/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/yourusername/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/yourusername/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top