2 파이썬 실행 환경 설정
파이썬은 여러 가지 방법으로 설치하고 사용할 수 있다. 여기서는 “데이터 분석”을 위해 파이썬을 사용하는 면에 초점을 맞추고, 내가 주로 사용하는 방식으로 설명하고자 한다. 나는 컴퓨터 비전공자여서 오히려 처음 파이썬을 배우는 사람들에게는 내 경험이 더 도움이 될 수 있을 것 같기 때문이다. 대강의 줄거리를 적어보면 다음과 같다.
- 아이콘다(Anaconda) 파이썬 배포판을 설치한다.
- 가상 환경(virtual environment)을 만든다.
conda
명령은 시스템 전반에 영향을 주는 가상 환경을 만들 때 사용한다.- 때로는
uv
를 사용하여 폴더 단위로 파이썬 프로젝트 전용 가상 환경을 만든다(엄청 빠르다!!!).
- 가상 환경을 활성화(activation)시킨다.
- 활성화된 가상 환경에 필요한 파이썬 패키지를 설치한다.
pandas
,numpy
,matplotlib
,seaborn
,plotly
,scikit-learn
,scipy
,statsmodels
,pytorch
,duckdb
등등…
- 가상환경에 있는 파이썬을 실행할 수 있도록 맞춰진 데이터 과학 노트북(Data Science Notebook)을 선택하여 작업한다. 다음과 같은 방법들 가운데 하나를 선택한다.
- VS Code를 실행하고, 내장 Jupyter Notebook을 실행하고, 커널(kernel)을 선택한다.
- Cursor AI IDE에서 내장 Jupyter Notebook을 만들고 커널을 선택한다.
- 가상환경에
marimo
을 패키지를 설치한 후marimo notebook
을 실행한다. - JupyterLab/Jupyter Notebook을 실행시킨다.
이렇게 써 놓으니까 복잡한 것 같지만 실제로 그다지 어렵지는 않고 적어도 나는 이게 최선의 방법이라고 생각한다. 다만 1 장에서 설명한 것과 같이 명령행 인터페이스(command line interface)에는 익숙해질 필요가 있다. 하나씩 살펴보자.
2.1 아이콘다(Anaconda) 파이썬 배포판 설치하기
아이콘다(Anaconda) 배포판은 데이터 과학을 위한 안정적인 플랫폼을 제공한다. 아이콘다 배포판은 Anaconda 웹사이트에서 다운로드할 수 있다.
설치하는 데 큰 어려움은 없을 것인데, 좀 무거워서 설치하는 데 시간이 걸린다.
그런데, 왜 python.org
같은 공식 웹사이트에서 다운로드하지 않고 아이콘다 배포판을 설치하느냐고 질문할 수 있을 것 같다. 그것은 아이콘다 배포판은 데이터 과학을 위한 여러 가지 패키지들이 미리 설치되어 있고, 가상환경을 쉽게 만들 수 있는 도구들이 포함되어 있기 때문이다. 파이썬은 범용 언어(general-purpose language)이기 때문에 데이터 과학 이외에도 다양한 용도로 사용된다. 용도에 따라 파이썬을 설치하는 방법은 여러 가지가 있을 수 있다. 데이터 과학을 위해선 아이콘다 배포판을 설치하는 것이 가장 편리하다.
2.2 설치 완료후 아나콘다 프롬프트 실행 (Windows에서)
아이콘다 배포판을 설치하고 나면, 아이콘다 프롬프트(Anaconda Prompt), 아나콘다 파워셸 프롬프트(Anaconda PowerShell Prompt)라는 명령행 인터페이스를 사용할 수 있다. 여기서는 아이콘다 프롬프트(Anaconda Prompt)를 사용한다.
아나콘다 프롬프트를 실행하면 다음과 같은 화면이 나타난다.
원래 윈도우 컴퓨터에 설치되어 있는 윈도우 터미널 대신 아나콘다 프롬프트를 사용하는 이유는 몇 가지가 있다.
- 파이썬과 관리 도구들을 사용하기 위한 경로(Path) 설정들이 이미 되어 있어서 귀찮은 작업을 하지 않아도 된다.
- 여기에서
python
명령어를 입력하면 아나콘다 배포판에 설치된 파이썬이 실행된다. - 뒤에서 설명할
conda
명령어를 사용할 수 있다. - 프롬프트 맨 앞에
(base)
라는 글자가 보인다. 이건 현재 아나콘다 배포판의 기본 가상환경이 활성화되어 있다는 뜻으로 디폴트로base
라는 이름의 가상 환경을 사용하고 있다는 뜻이다.
다음은 아나콘다 프롬프트에서 python
명령어를 입력하여 파이썬 인터프리터를 실행하고 pandas
패키지를 임포트하는 화면이다. pandas
패키지는 아나콘다 배포판에 기본적으로 설치되어 있기 때문에 별도 추가 작업이 필요없다.
2.3 conda 명령어로 가상환경과 필요한 파이썬 패키지 설치 (Windows에서)
먼저 아나콘다 프롬프트를 실행하자. 여기서 conda
명령어를 사용할 수 있으면, 이 도구를 가지고 가상환경을 만들고, 가상환경을 활성화하고, 필요한 패키지를 설치할 수 있다. 먼저 처음 배우는 사람들은 가상환경의 개념에 대해서 모를 수 있어서 가상 환경에 대해서 설명한다.
그림 그림 2.4에서 보는 바와 같이, 가상환경(virtual environment)은 독립된 파이썬 버전과 거기에 따른 패키지 등으로 구성된다. 이런 가상환경에 하나의 컴퓨터 안에 여러 개가 존재할 수 있고, 심지어 프로젝트 폴더당 하나씩 만들어 사용하기도 한다.
왜 이렇게 할까? 그 이유는 Python 언어는 범용 언어(general purpose language)여서 다양한 용도로 쓰이며, 또 다양한 파이썬 패키지가 개발되어 있고, 이들 패키지들의 의존성이 복잡하기 때문에 이를 체계적으로 관리해야 할 필요가 있기 때문이다. 어떤 패키지는 Python 3.10 버전에서만 작동하고, 어떤 패키지는 Python 3.11 버전에서만 작동할 수 있다. 가상환경은 이런 의존성을 관리하는 데 도움을 주고, conda
명령어는 이런 일을 거의 자동으로 해준다.
2.4 conda
명령어로 가상환경을 만들고, 활성화하고, 패키지를 설치하고, 비활성화 시키기
아나콘다 프롬프트에서 프로젝트 디렉터리를 만들고(mkdir
), 그 디렉터리로 이동한다(cd
). 또는 아래 그림 2.5와 같이 탐색기에서 작업할 디렉터리를 선택한 다음 오른쪽을 클릭하여 터미널에서 열기로 선택하여 접근할 수도 있다.
여기에 myenv
라는 이름의 가상환경을 만들고, 이 가상환경을 활성화하고, 비활성화하는 방법은 다음과 같다. 다음과 같은 명령어들이 루틴으로 사용하게 된다.
# 가상환경 만들기
conda create -n myenv python=3.13
# 가상환경 활성화하기
conda activate myenv
# 활성화된 가상환경에 패키지 설치하기
conda install pandas
# 가상환경 비활성화하기
conda deactivate
가상환경을 만들 때
python=3.13
과 같이 파이썬 버전을 지정할 수 있다. 만약 버전을 지정하지 않으면, 아나콘다 배포판에 설치된 최신 버전의 파이썬이 설치된다.가상환경을 활성화하면, 프롬프트에
(myenv)
라는 글자가 보인다. 이건 현재myenv
라는 이름의 가상환경이 활성화되어 있다는 뜻이다. 가상환경을 활성화한 후에conda install
명령어를 사용하여 필요한 패키지를 설치하면 이 가상환경에 패키지가 설치된다. 위 그림 그림 2.4에서 볼 때 “가상환경 1”을 활성화하고 여기에 패키지를 설치하면 여기에만 저장된다. “가상환경 2”에는 전혀 영향을 주지 않는다.
conda
명령으로 현재 컴퓨터에 설치된 가상환경을 확인할 수 있다.
conda env list
더이상 필요없는 가상환경을 제거할 수 있다(만약 myenv
가 활성되어 있어 있으면 deactivation 한 후에 실행).
conda remove -n myenv --all
아나콘다 프롬프트를 실행하고, 작업하는 디렉터리로 이동하여 가상환경을 만들고 활성화한다고 설명했다. 그래서 가상환경이 현재 작업하는 디렉터리에 만들어질 것이라고 생각할 수 있다. 그러나 실제로는 그렇지 않다.
conda
는 현재 작업하는 디렉터리와는 상관없이 시스템 전역으로 가상환경을 만든다. conda create -n myenv python=3.13
명령어를 실행하면 현재 작업하는 디렉터리와는 상관없이 가상 환경이 만들어진다. 예를 들어, 아나콘다 배포판이 C:\Users\username\Anaconda3
에 설치되어 있다면, 가상환경은 C:\Users\username\Anaconda3\envs
에 만들어진다. 이런 점은 보는 관점에 따라 장점이 되기도 하고 단점이 되기도 한다.
작업 디렉터리에서 가상환경을 활성하는 것은 후속 작업을 생각하면 편리하다. 예를 들어 뒤에서 설명할 JupyterLab
등을 실행할 때는 이 작업 디렉터리를 기본으로 하는 경우가 많기 때문이다.
뒤에서 설명할 uv
는 현재 작업하는 디렉터리에 가상환경을 만들어 사용하는 것이 편리하다.
2.5 데이터 과학 노트북 설치
파이썬 언어를 사용한 데이터 과학을 이야기할 때 가장 많이 언급되는 도구가 Jupyter Notebook
과 JupyterLab
이다. 이 도구들은 웹 브라우저에서 실행되는 대화형 노트북 환경을 제공한다(이 도구들은 아나콘다 배포판에 기본적으로 설치되어 있다). JupyterLab
은 Jupyter Notebook
의 확장판이어서 더 많은 기능을 제공한다. 여기서는 Jupyter Notebook
이라는 하나의 용어로 통일하여 설명하려고 한다.
Jupyter Notebook
은 데이터 과학을 할 때 필수적인 도구로 널리 사용되다 보니, 원래는 파이썬 패키지로 설치되어 독자적인 앱으로 사용되었으나 최근에는 VS Code
와 같은 텍스트 에디터의 내장 기능으로 제공되기도 하고(이 부분은 뒤에서 설명할 예정이다) 또는 독자적인 앱으로 만들어진 것들도 있다.
그래도 Jupyter Notebook
의 클래식한 형태가 여전히 많이 사용되고 있고, 호스트 환경이 좀 다르더라도 원래 Jupyter Notebook
에서 제공하던 기능은 그대로 유지하는 경우가 많다. 그리고 원래의 작동 방식과 원리를 이해하는 것이 최신의 도구들을 좀 더 잘 활용하는 데 도움이 될 것이다. 따라서 여기선 클래식한 방식으로 Jupyter Notebook
을 설치하고 사용하는 방법을 설명하고, 그 다음 VS Code
에서 사용하는 방법을 소개하고 한다.
2.5.1 Jupyter Notebook 설치하고 실행하기
Jupyter Notebook
은 아나콘다 배포판에 기본적으로 설치되어 있기는 하지만, 여기서는 새로운 가상환경에 패키지를 설치하여 실행하는 방법을 설명하고자 한다.
아나콘다 프롬프트를 실행한다.
작업할 디렉터리로 이동한다.
새로운 가상환경을 만들거나, 기존 가상환경을 활성화한다.
다음과 같이
jupyter
패키지를 설치한다. 다음 명령에서$
까지는 프롬프트를 의미한다.$
이하만 입력한다.(my-project)...$ conda install jupyter
jupyter notebook
명령어를 입력하여 실행한다(my-project)...$ jupyter notebook
웹 브라우저가 열리면서
Jupyter Notebook
이 실행된다. 일반 개인용 컴퓨터에서Jupyter Notebook
을 실행하면 기본적으로localhost:8888
주소에서 실행된다.jupyter notebook
명령어가 실행된 디렉터리를 기본 디렉터리로 사용하는 웹 서버가 작동된다. 이런 내용들은 명령행 인터페이스에서 확인할 수 있다. 웹 서버가 작동하는 동안에는 이 명령행 인터페이스는 블록킹된다.Jupyter Notebook
이 실행되면, 다음과 같은 화면이 나타난다. 웹 브라우전에서 실행되는 이 앱은 앞서 설명한 (로컬) 웹 서버의 클라이언트이다.그림 2.6에서 오른쪽 New 버튼을 클릭하면, 현재 활성화된 가상환경에 설치된 커널(kernel) 목록이 나타난다(커널은 잠시 뒤에 설명한다). 여기서
Python 3(ipykernel)
을 선택하면Untitled1.ipynb
라는 이름을 가진 노트북 파일이 현재의 디렉터리에 생성된다.
커널(kernel)은 주피터 노트북에서 코드 셀에 있늨 코드를 실행하는 데 사용되는 프로세스이다. 일종의 엔진이라고 생각할 수 있다. 여러 프로그래밍 언어에 대한 다양한 주피터 노트북 커널이 개발되어 있다. 디폴트 커널을 파이썬 언어에 대한 커널로 그 이름이 ipykernel
이다. R 언어에 대한 IRkernel
이 개발되어 있다. 주피터 노트북은 커널을 통해 다양한 언어로 코드를 작성하고 실행할 수 있는 환경을 제공한다. 따라서 주피터 노트북은 language-agnostic
한 도구라고 할 수 있다.
커널은 주피터 노트북과 상호작용하며, 코드 셀을 실행하고 결과를 반환한다. 즉, 사용자가 주피터 노트북에 코드를 입력하고 실행시키면, 이것이 커널로 넘겨져 커널에서 코드가 실행되고, 그 결과가 다시 주피터 노트북으로 돌아오는 구조이다.
새로 만들어진
Untitled1.ipynb
파일을 클릭하면, 다음과 같은 화면을 볼 수 있다.
주피터 노트북은 ipynb
라는 확장자를 가진 파일을 생성한다. 이 파일은 JSON(JavaScript Object Notation) 형식으로 저장되고, 노트북의 셀(cell)과 메타데이터(metadata)를 포함하고 있다.
세부사항은 몰라도 .ipynb
파일은 데이터 과학을 수행할 때 가장 많이 공유되는 파일이기 때문에 일단 이름만이라도 알아두면 좋겠다.
2.5.2 주피터 노트북 기초 사용법
다시 주피터 노트북 화면을 보자.
파일 이름
Untitled1
을 클릭하여 원하는 이름으로 바꿀 수 있다.오른쪽을 보면
Python 3(ipykernel)
이라고 되어 있다. 이건 현재 활성화된 가상환경에 설치된 커널을 의미한다.메뉴 중간에 Code 메뉴에서 드롭다운 메뉴를 클릭해 보자. Code, Markdown, Raw 메뉴가 보인다. 이 메뉴를 통해 코드의 종류를 지정할 수 있다.
화면 아래에 보이는 네모난 공간이 셀(cell)이다.
- 코드 셀은 파이썬 코드를 입력하고 실행할 수 있는 공간이다.
- 마크다운 셀은 마크다운 문법을 사용하여 텍스트를 입력할 수 있는 공간이다.
- Raw 셀은 특별한 용도로 사용되는 셀이다.
그래서 사용자는 이 셀에 코드를 입력하고 실행시킬 수 있고, 마크다운 셀에 마크다운 문법을 사용하여 텍스트를 입력한다.
Raw
셀은 사용하는 경우는 그다지 별로 없다(Quarto에서 사용하는 경우가 있다).
그림 2.10은 코드 셀에 파이썬 코드가 들어가 있고, 마크다운(Markdown) 셀에 텍스트가 들어가 있는 있는 상태로 실행전이다. 그림을 잘 관찰해 보자. 코드 셀 앞에는 []
라는 글자가 있다. 마크다운 셀 앞은 별다른 표시가 없다.
마크다운 셀을 실행하면 마크다운이 프로세싱되고, 코드 셀은 코드가 실행되고 그 아래 결과가 출력된다. 실행은 메뉴에 보이는 화살표를 사용할 수도 있고, Shift + Enter
키를 눌러서 실행할 수도 있다. 그러고 전체 Run 메뉴에 여러 가지 실행 옵션을 볼 수 있다.
그림 2.11에서 보듯이, 코드 셀을 실행하면 In [1]
이라는 글자가 보인다. 이건 이 코드 셀이 첫 번째로 실행된 코드 셀이라는 뜻이다. 그리고 코드는 결과들은 코드 아래 출력된다.
2.5.3 설명하지 않은 많은 것들이 남아있다.
주피토 노트북 이야기를 더 하자면 끝도 없다. 하지만 여기서는 이 정도만 정리하고자 한다. 더 자세한 내용을 알고 싶은 경우에는 Python for Data Analysis, 3E을 참고하기 바란다. 이외에도 웹에 많은 자료들이 있다.
참고로, Jupyter Notebook
공식 사이트에 있는 Jupyter Notebook Documentation을 찾아볼 수도 있을 것 같은데, 권하지 않는다. 왜냐하면, 주피터 사용자를 위한 문서라기 보다는 개발자를 위한 문서에 가깝기 때문이다. 만약 도전할 것이라면 이 문서와 함께 IPython 문서도 같이 읽어야 하는데, 주피터의 커널인 ipykernel
을 함께 이해해야 하기 때문이다.
2.5.4 마크다운(Markdown)에 대해
마크다운(Markdown) 셀에는 마크다운 문법을 사용하여 텍스트를 입력한다. 마크다운은 자체의 문법을 가지고 있는데, 이 문법을 사용하여 텍스트를 입력하면, 마크다운 프로세서가 이를 HTML로 변환하여 웹 브라우저에서 보여준다. 마크다운 문법은 간단하고 직관적이어서 쉽게 배울 수 있다.
- 마크다운 문법에 대한 자세한 내용은 Markdown Guide를 참고하기 바란다.
주피터 노트북에서 마크다운 셀에, 마크다운 문법을 텍스트를 입력한 다음 이 셀을 실행하면 HTML로 변환된 내용이 해당 위치 보이게 된다.
2.5.5 Visual Studio Code
와 Jupyter
익스텐션
Visual Studio Code
는 마이크로소프트에서 개발한 무료 오픈소스 코드 편집기이다. 이 편집기는 다양한 프로그래밍 언어를 지원하고, 많은 익스텐션을 통해 기능을 확장할 수 있는 장점이 있다.
- 다운로드 사이트: Visual Studio Code
VS Code
를 설치하고 나면 파이썬 언어를 지원하는 익스텐션을 설치할 필요가 있다. 핵심 익스텐션은 Python
과 Jupyter
이다.
- Python: Python for Visual Studio Code
- Jupyter: Jupyter for Visual Studio Code
이런 패키지들은 VS Code
를 실행하고, 왼쪽 사이드바에서 Extensions 아이콘을 클릭하여 검색할 수 있다.
파이썬으로 데이터 과학을 위한 내용들은 2개의 섹션을 보면 된다.
Python
관련 섹션: Quick Start Guide for Python in VS Code데이터 과학 관련 섹션: Data Science in Visual Studio Code, 이 섹션에서 주피터 노트북 관련 내용이 많이 있다.
2.5.5.1 초간단 VS Code 사용법
VS Code
의 기능도 많은데, 여기서는 초간단 사용법만 설명하고자 한다.
VS Code
는 기본적으로 코드를 작성하는 텍스트 편집기이다. Word 같은 문서 편집기들은 보통 파일을 열어서 작업하지만VS Code
는 폴더를 열어서 작업하는 것이 보통이다. 이 폴더는 우리가 지금 수행하는 데이터 과학 프로젝트의 폴더이다.명령 팔레트(Command Palette)는 꼭 알아야 하는 기능으로
Ctrl + Shift + P
(맥에서는Command + Shift + P
)를 누르면 나타난다. 자주 사용하는 명령은 여기에서 바로 실행할 수 있다.파일 탐색은
Ctrl + P
(맥에서는Command + P
)를 누르면 나타난다. 이것은 현재 폴더에 있는 이름들을 빠르게 검색하고 열수 있는 기능을 제공한다.명령 팔레트를 사용하여
code
셸 명령어 인스톨 하자. 이 명령어는 VS Code를 명령행에서 실행할 수 있도록 해준다.Ctrl + Shift + P
를 누르고Shell Command: Install 'code' command in PATH
를 입력하고 선택한다(그림에서 보는 바와 같이Shell
정도만 입력해도 될 것이다).- 이것이 실행되고 나면, 아나콘다 프롬프트에서 프로젝트 폴더로 이동하여
code .
을 입력하면 현재 디렉터리를 VS Code로 열 수 있다..
은 현재 디렉터리를 의미한다.
2.5.5.2 VS Code에서 Jupyter Notebook 사용하기
VS Code
에서 Jupyter Notebook
을 사용하기 위해서는 Jupyter
익스텐션을 설치해야 한다. 이 익스텐션을 설치하면, VS Code
에서 Jupyter Notebook
을 사용할 수 있다.
VS Code
를 실행하고,Ctrl + Shift + P
를 눌러서 명령 팔레트를 연다.Jupyter: Create New Notebook
을 입력하고 선택한다(다 입력하지 않아도 된다.). 그러면 새로운 노트북이 생성된다.파일을 저장하고, 이 파일의 파이썬 코드를 실행시킬 커널(kernel)을 선택한다. 커널을 선택하는 방법은 여러 가지가 있는데, 가장 간단한 방법은 노트북 파일을 열고, 오른쪽 상단에 있는 커널 선택 버튼을 클릭하여 커널을 선택하는 것이다.
2.6 더 관심이 있으면…
요즈음에는 뭔가 발전이 빠르다. 흥미롭게 보는 것들이 있는 있는데 관심이 있는 분들은 참고하면 좋을 것 같다.
요즈음은
conda
를 대신하여 최근 소개된uv
라는 파이썬 패키지 관리자를 많이 쓰게 된다. 굉장히 빠르고, 저장 용량도 작아서 많은 인기를 끌고 있다.인공지능 Assistant를 사용한 코딩
- Cursor AI IDE: VS Code 오픈소스 버전을 기반으로 인공지능이 내장된 텍스트 에디터이다.
- GitHub Copilot: VS Code에서 깃허브 코파일럿 익스텬션을 설치하여 사용할 수 있다.
최근
Jupyter Notebook
의 단점을 보완한marimo
노트북을 사용해 보곤 한다.
2.7 정리
여기에 소개한 방법도 언제가는 구식이 될 것이다. 그건 그때가서 고민하고, 현 시점에서 필요한 것들을 정리했다. 하지 못한 내용이 많기는 하지만, 파이썬을 배우기도 전에 김을 빼놀 수 있을 것 같은 우려로 가급적 간단하게 정리하였다.