Python으로 데이터 분석을 시작하면 문법보다 먼저 부딪히는 것이 실행 환경이다.
Python은 설치되어 있는데 numpy가 없다고 나오거나, 터미널에서는 설치했는데 Jupyter에서는 import가 안 되거나, 프로젝트마다 패키지 버전이 달라 충돌하는 일이 흔하다.
이 글에서는 데이터 분석을 시작할 때 필요한 환경 구성을 현재 Python 생태계 기준으로 정리한다.
Python 코드를 실행하려면 Python 인터프리터가 필요하다.
가장 널리 사용하는 구현은 CPython이다.
터미널에서 다음 명령으로 설치 여부를 확인할 수 있다.
python --version
Windows에서는 환경에 따라 다음 명령이 동작할 수도 있다.
py --version
Python 실행 파일의 위치가 궁금하다면:
python -c "import sys; print(sys.executable)"
패키지 문제를 해결할 때는 지금 어떤 Python을 실행하고 있는지 확인하는 습관이 중요하다.
시스템 전체 Python에 모든 패키지를 설치하면 프로젝트가 늘어날수록 버전 충돌 가능성이 커진다.
예를 들어:
project-a
└─ pandas 2.x
project-b
└─ pandas 3.x
이런 경우 프로젝트별 가상환경을 사용하면 각각 독립적인 패키지 구성을 유지할 수 있다.
venvpython -m venv .venv
Windows:
.venv\Scripts\activate
macOS/Linux:
source .venv/bin/activate
활성화된 상태에서 필요한 패키지를 설치한다.
python -m pip install numpy pandas matplotlib seaborn jupyterlab
현재 환경에 설치된 패키지 확인:
python -m pip list
데이터 분석이나 과학 계산에서는 Conda 계열 환경도 많이 사용한다.
새 환경 생성:
conda create -n data_env python
활성화:
conda activate data_env
설치:
conda install numpy pandas matplotlib seaborn jupyterlab
프로젝트에 따라 venv + pip 또는 conda 중 하나를 선택하면 된다.
핵심은 한 프로젝트에서 환경 관리 방식을 일관되게 사용하는 것이다.
pip install보다 python -m pip이 좋은 이유pip install pandas
python -m pip install pandas
두 번째 방식은 현재 python 명령으로 실행하는 인터프리터의 pip을 명시적으로 사용한다.
특히 Python이 여러 개 설치된 환경에서 다음 문제를 줄이는 데 도움이 된다.
설치는 성공했는데 import가 안 됨
설치 경로 확인:
python -m pip --version
Python 경로 확인:
python -c "import sys; print(sys.executable)"
import numpy as np
주요 역할:
import pandas as pd
주요 역할:
import matplotlib.pyplot as plt
대표적인 범용 시각화 라이브러리다.
import seaborn as sns
Matplotlib 위에서 동작하며 통계적 시각화를 편하게 작성할 수 있다.
설치:
python -m pip install jupyterlab
실행:
jupyter lab
Jupyter에서는 코드를 셀 단위로 실행한다.
x = 10
다음 셀:
x + 20
결과:
30
화면 위에서 아래 순서가 아니라 실제로 실행한 순서에 따라 변수 상태가 결정된다.
위쪽 셀을 수정했지만 다시 실행하지 않았다면 메모리에는 이전 값이 남아 있을 수 있다.
결과가 이상하다면 다음 흐름으로 다시 확인하는 것이 좋다.
Kernel Restart
→ Run All
처음부터 순서대로 실행했을 때도 정상 동작하는지 확인한다.
가상환경을 활성화한 뒤:
python -m pip install ipykernel
커널 등록:
python -m ipykernel install --user --name data_env --display-name "Python (data_env)"
이후 Jupyter에서 해당 커널을 선택한다.
Notebook에서 현재 Python 경로 확인:
import sys
print(sys.executable)
패키지 버전 확인:
import numpy as np
import pandas as pd
print(np.__version__)
print(pd.__version__)
ModuleNotFoundError가 발생할 때 확인 순서터미널:
python -c "import sys; print(sys.executable)"
python -m pip --version
python -m pip show pandas
Jupyter:
import sys
print(sys.executable)
많은 import 문제는 설치한 환경과 실행하는 환경이 서로 다른 것에서 시작한다.
python -m pip freeze > requirements.txt
다른 환경에서:
python -m pip install -r requirements.txt
간단한 학습 프로젝트에서는 필요한 환경을 재현하는 데 유용하다.
data-analysis-project/
├─ .venv/
├─ data/
│ ├─ raw/
│ └─ processed/
├─ notebooks/
│ └─ exploration.ipynb
├─ src/
│ └─ preprocessing.py
├─ requirements.txt
└─ README.md
원본 데이터와 가공 데이터를 분리하면 실수로 원본을 덮어쓰는 일을 줄일 수 있다.
현재 작업 폴더:
%pwd
실행 시간 측정:
%timeit sum(range(1000))
%로 시작하는 명령은 일반 Python이 아니라 IPython 전용 기능이다.
.py 파일에서는 그대로 사용할 수 없다.
Python
+ 가상환경
+ NumPy
+ Pandas
+ Matplotlib
+ Seaborn
+ JupyterLab
설치 예:
python -m pip install numpy pandas matplotlib seaborn jupyterlab
python -m pip을 사용하면 현재 Python과 pip의 연결 관계를 명확하게 유지하기 쉽다.ModuleNotFoundError가 발생하면 설치 여부보다 먼저 Python과 Jupyter 커널이 같은 환경을 사용하는지 확인한다.