챕터 1: 파이썬 환경 설정
“좋은 시작이 반이다” - 파이썬 개발 환경을 제대로 구축하면 이후 모든 학습이 수월해집니다.
학습 목표
- 파이썬을 시스템에 설치하고 설정할 수 있다
- 다양한 운영체제에서 파이썬 환경을 구축할 수 있다
- 가상 환경을 이해하고 활용할 수 있다
- 개발 도구들을 효과적으로 사용할 수 있다
핵심 개념(이론)
1) “설치”보다 중요한 건 “재현 가능한 환경”이다
환경 설정의 목표는 단순히 파이썬을 실행하는 것이 아니라, 언제/어디서나 동일하게 설치 가능한 상태를 만드는 것입니다.
프로젝트가 커질수록 “내 PC에서는 되는데요?” 문제가 비용을 폭발시킵니다.
2) 가상환경은 ‘선택’이 아니라 ‘기본 안전장치’다
프로젝트마다 의존성 버전이 다르기 때문에, 가상환경이 없으면 충돌이 필연적으로 발생합니다.
가상환경은 패키지를 격리해 충돌을 줄이고, 배포/CI에서도 동일 환경을 재현하기 쉽게 합니다.
3) 패키지 관리의 핵심은 “범위와 고정”의 균형이다
학습/개발에서는 최신을 쓰고 싶지만, 운영에서는 재현성이 필요합니다.
따라서 “범위(>=)”와 “고정(lock)”을 목적에 따라 구분하는 습관이 중요합니다.
4) 도구(IDE/포매터/린터)는 품질과 속도를 동시에 올린다
초반에 도구 설정이 번거롭게 느껴져도, 코드가 늘어날수록 자동화의 이득이 누적됩니다.
특히 포매팅/린트/테스트 실행을 습관화하면 실수를 줄이고 학습 속도를 올립니다.
선택 기준(Decision Guide)
- 단일 프로젝트도 venv는 쓰는 것이 기본(충돌 예방).
- 팀/운영이 들어가면:
pyproject.toml 기반과 CI(테스트/린트)까지 초기에 설계.
흔한 오해/주의점
- PATH/인터프리터가 여러 개일 때, “실행되는 파이썬”과 “pip가 설치하는 파이썬”이 다를 수 있습니다.
- OS별 차이는 파일 경로/권한/인코딩에서 자주 터집니다. 초기에 습관을 잡아두세요.
요약
- 목표는 설치가 아니라 재현 가능한 개발 환경이다.
- 가상환경은 필수이며, 의존성은 목적에 따라 범위/고정으로 관리한다.
파이썬 설치 가이드
운영체제별 설치 방법
Windows 설치
방법 1: 공식 웹사이트에서 설치 (권장)
- python.org 접속
- 최신 안정 버전 다운로드 (Python 3.11+ 권장)
- 설치 시 “Add Python to PATH” 체크박스 반드시 선택
- “Install Now” 클릭
1
2
3
4
5
6
7
| # 설치 확인
python --version
# 또는
python -V
# pip 확인
pip --version
|
방법 2: Microsoft Store (초보자용)
- Microsoft Store 열기
- “Python"으로 검색
- Python 3.x 설치
방법 3: Anaconda (데이터 과학용)
- anaconda.com 접속
- Individual Edition 다운로드
- 설치 후 Anaconda Navigator 실행
macOS 설치
방법 1: Homebrew (권장)
1
2
3
4
5
6
7
8
9
| # Homebrew 설치 (없는 경우)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Python 설치
brew install python
# 설치 확인
python3 --version
pip3 --version
|
방법 2: pyenv (버전 관리용)
1
2
3
4
5
6
7
8
9
10
| # pyenv 설치
brew install pyenv
# 원하는 Python 버전 설치
pyenv install 3.11.0
pyenv global 3.11.0
# shell 설정 (.zshrc 또는 .bash_profile)
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
|
Linux 설치
Ubuntu/Debian:
1
2
3
4
5
6
7
8
| # 시스템 업데이트
sudo apt update
# Python 설치
sudo apt install python3 python3-pip python3-venv
# 개발 도구 설치
sudo apt install python3-dev build-essential
|
CentOS/RHEL:
1
2
3
4
5
| # Python 설치
sudo dnf install python3 python3-pip
# 또는 yum (구버전)
sudo yum install python3 python3-pip
|
설치 확인 및 기본 테스트
설치가 완료되면 다음 명령어로 확인하세요:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # Python 버전 확인
python --version
# 또는 macOS/Linux에서
python3 --version
# pip 버전 확인
pip --version
# 또는 macOS/Linux에서
pip3 --version
# Python 인터프리터 실행
python
# 또는
python3
|
첫 번째 Python 코드 실행:
1
2
3
4
5
6
7
| # Python 인터프리터에서
print("Hello, Python!")
print("환경 설정 완료!")
# 종료하려면
exit()
# 또는 Ctrl+D (macOS/Linux), Ctrl+Z (Windows)
|
가상 환경 완전 가이드
가상 환경이 필요한 이유
가상 환경의 장점:
- 🔒 의존성 격리: 프로젝트별 독립적인 패키지 관리
- 🔄 버전 충돌 방지: 다른 프로젝트 간 라이브러리 버전 충돌 없음
- 🧹 깔끔한 환경: 시스템 Python 환경을 깨끗하게 유지
- 📦 재현 가능성: 동일한 환경을 다른 곳에서 재현 가능
venv로 가상 환경 만들기 (권장)
기본 사용법:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| # 가상 환경 생성
python -m venv myproject_env
# Windows에서 활성화
myproject_env\Scripts\activate
# macOS/Linux에서 활성화
source myproject_env/bin/activate
# 활성화 확인 (프롬프트에 (myproject_env) 표시됨)
which python
# 또는
python --version
# 비활성화
deactivate
|
실전 예제 - 웹 프로젝트 환경 구축:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| # 1. 프로젝트 디렉토리 생성
mkdir my_web_project
cd my_web_project
# 2. 가상 환경 생성
python -m venv venv
# 3. 가상 환경 활성화
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
# 4. 필요한 패키지 설치
pip install flask requests beautifulsoup4
# 5. requirements.txt 생성
pip freeze > requirements.txt
# 6. requirements.txt 내용 확인
cat requirements.txt
# 7. .gitignore 파일 생성
echo "venv/" > .gitignore
echo "__pycache__/" >> .gitignore
echo "*.pyc" >> .gitignore
echo ".env" >> .gitignore
# 8. README.md 파일 생성
cat > README.md << 'EOF'
# Python Learning Project
## 설치 방법
1. 가상 환경 생성:
```bash
python -m venv venv
|
가상 환경 활성화:
- Windows:
venv\Scripts\activate - macOS/Linux:
source venv/bin/activate
의존성 설치:
1
| pip install -r requirements.txt
|
사용법
메인 스크립트 실행:
EOF
echo “개발 환경 구축 완료!”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
### 다른 가상 환경 도구들
#### virtualenv (고급 기능)
```bash
# 설치
pip install virtualenv
# 가상 환경 생성
virtualenv myproject_env
# 특정 Python 버전 지정
virtualenv -p python3.11 myproject_env
|
conda (데이터 과학용)
1
2
3
4
5
6
7
8
9
10
11
| # 가상 환경 생성
conda create -n myproject python=3.11
# 활성화
conda activate myproject
# 패키지 설치
conda install numpy pandas matplotlib
# 비활성화
conda deactivate
|
pipenv (모던한 접근)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 설치
pip install pipenv
# 프로젝트 초기화
pipenv install
# 패키지 설치
pipenv install requests flask
# 가상 환경 실행
pipenv shell
# 의존성 확인
pipenv graph
|
개발 도구 설정
코드 에디터 선택과 설정
VS Code (무료, 권장)
설치 및 기본 설정:
- code.visualstudio.com 에서 다운로드
- 필수 확장 프로그램 설치:
1
2
3
4
5
6
7
8
9
10
11
| // 추천 확장 프로그램
{
"recommendations": [
"ms-python.python", // Python 지원
"ms-python.autopep8", // 코드 포매팅
"ms-python.pylint", // 코드 검사
"ms-toolsai.jupyter", // Jupyter 지원
"ms-vscode.vscode-json", // JSON 지원
"formulahendry.code-runner" // 코드 실행
]
}
|
VS Code 설정 (settings.json):
1
2
3
4
5
6
7
8
9
10
11
| {
"python.defaultInterpreterPath": "./venv/bin/python",
"python.formatting.provider": "autopep8",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"editor.fontSize": 14,
"editor.tabSize": 4,
"editor.insertSpaces": true
}
|
PyCharm (전문가용)
Community Edition (무료):
주요 설정:
- File → Settings → Project → Python Interpreter
- 가상 환경 경로 설정
- Code Style → Python → PEP 8 적용
Jupyter Notebook 설정
설치 및 실행:
1
2
3
4
5
6
7
8
9
10
11
| # 가상 환경에서 설치
pip install jupyter notebook
# 또는 JupyterLab (더 현대적)
pip install jupyterlab
# Jupyter Notebook 실행
jupyter notebook
# JupyterLab 실행
jupyter lab
|
유용한 확장 프로그램:
1
2
3
4
5
6
7
8
| # nbextensions 설치 (Notebook용)
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user
# 유용한 확장 프로그램들
# - Table of Contents: 목차 생성
# - Variable Inspector: 변수 상태 확인
# - Code Folding: 코드 접기
|
터미널 및 셸 설정
Windows PowerShell 설정
1
2
3
4
5
| # 실행 정책 설정 (가상 환경 활성화를 위해)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Windows Terminal 설치 (Microsoft Store에서)
# 더 나은 터미널 경험 제공
|
macOS/Linux 셸 설정
1
2
3
4
5
6
| # Oh My Zsh 설치 (선택사항)
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# Python 관련 별칭 추가 (.zshrc 또는 .bashrc)
echo 'alias python=python3' >> ~/.zshrc
echo 'alias pip=pip3' >> ~/.zshrc
|
패키지 관리 마스터하기
pip 고급 사용법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| # 패키지 검색
pip search requests
# 패키지 정보 확인
pip show requests
# 설치된 패키지 목록
pip list
# 업그레이드 가능한 패키지 확인
pip list --outdated
# 패키지 업그레이드
pip install --upgrade requests
# 특정 버전 설치
pip install requests==2.28.1
# 범위 지정 설치
pip install 'requests>=2.25.0,<3.0.0'
# requirements.txt에서 설치
pip install -r requirements.txt
# 패키지 제거
pip uninstall requests
|
requirements.txt 관리
기본 requirements.txt:
1
2
3
4
5
6
7
| # requirements.txt
requests==2.28.1
flask==2.2.2
beautifulsoup4==4.11.1
pandas>=1.5.0
numpy>=1.23.0
matplotlib>=3.6.0
|
개발용 requirements-dev.txt:
1
2
3
4
5
6
7
8
9
10
| # requirements-dev.txt
# 기본 패키지들
-r requirements.txt
# 개발 도구들
pytest==7.2.0
black==22.10.0
flake8==5.0.4
mypy==0.991
jupyter==1.0.0
|
프로젝트 구조 베스트 프랙티스
graph TD
myProject["my_project/"] --> venv["venv/"]
myProject --> src["src/"]
myProject --> tests["tests/"]
myProject --> docs["docs/"]
myProject --> requirements["requirements.txt"]
myProject --> readme["README.md"]
myProject --> gitignore[".gitignore"]
myProject --> setupPy["setup.py"]
src --> initPy["__init__.py"]
src --> mainPy["main.py"]
src --> utilsPy["utils.py"]
src --> configPy["config.py"]
tests --> testMain["test_main.py"]
tests --> testUtils["test_utils.py"]
docs --> docsIndex["index.md"]
docs --> apiMd["api.md"]
핵심 내용
파이썬 설치
- Windows: Microsoft Store, python.org, Anaconda
- macOS: Homebrew, python.org, pyenv
- Linux: 패키지 매니저, 소스 컴파일
- 버전 관리 전략 (Python 2 vs 3, LTS 버전 선택)
개발 환경 구축
- IDE 선택: PyCharm, VS Code, Sublime Text
- 텍스트 에디터: Vim, Emacs, Nano
- Jupyter Notebook/Lab: 데이터 분석과 프로토타이핑
- 설정 최적화: 인코딩, 경로 설정, 환경 변수
가상 환경 관리
- venv: 표준 라이브러리 활용
- virtualenv: 고급 기능 활용
- conda: 패키지와 환경 통합 관리
- pipenv: 의존성 관리 개선
- poetry: 현대적 의존성 관리
패키지 관리
- pip: 기본 패키지 관리자
- requirements.txt: 의존성 명세
- setup.py: 패키지 배포 준비
- pyproject.toml: 현대적 프로젝트 설정
실습 프로젝트
프로젝트 1: 개발 환경 완전 구축
목표: 실제 프로젝트에서 사용할 수 있는 완전한 개발 환경 구축
단계별 진행:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| # 1. 프로젝트 디렉토리 생성
mkdir python_learning_project
cd python_learning_project
# 2. 가상 환경 생성 및 활성화
python -m venv venv
# Windows: venv\Scripts\activate
# macOS/Linux: source venv/bin/activate
# 3. 기본 디렉토리 구조 생성
mkdir src tests docs
# 4. 초기 파일들 생성
touch src/__init__.py
touch src/main.py
touch src/utils.py
touch tests/test_main.py
touch README.md
touch requirements.txt
touch .gitignore
# 5. 개발 도구 설치
pip install pytest black flake8 mypy
# 6. requirements.txt 업데이트
pip freeze > requirements.txt
|
main.py 예시 코드:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| # src/main.py
"""
Python 학습 프로젝트 메인 모듈
"""
def greet(name: str = "World") -> str:
"""인사말을 반환하는 함수
Args:
name: 인사할 대상의 이름
Returns:
인사말 문자열
"""
return f"Hello, {name}!"
def main():
"""메인 함수"""
print(greet("Python Learner"))
print("환경 설정이 완료되었습니다!")
if __name__ == "__main__":
main()
|
테스트 코드 예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| # tests/test_main.py
"""
main.py 모듈 테스트
"""
import sys
import os
# src 디렉토리를 Python 경로에 추가
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'src')))
from main import greet
def test_greet_default():
"""기본 인사말 테스트"""
result = greet()
assert result == "Hello, World!"
def test_greet_with_name():
"""이름이 있는 인사말 테스트"""
result = greet("Alice")
assert result == "Hello, Alice!"
def test_greet_empty_string():
"""빈 문자열 테스트"""
result = greet("")
assert result == "Hello, !"
|
프로젝트 2: 다중 환경 관리
목표: 여러 프로젝트를 위한 독립적인 환경 구성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| # 웹 개발 환경
mkdir web_project
cd web_project
python -m venv venv
source venv/bin/activate # 또는 Windows: venv\Scripts\activate
pip install flask django fastapi
pip freeze > requirements.txt
deactivate
# 데이터 분석 환경
mkdir data_project
cd data_project
python -m venv venv
source venv/bin/activate
pip install pandas numpy matplotlib jupyter
pip freeze > requirements.txt
deactivate
# AI/ML 환경
mkdir ml_project
cd ml_project
python -m venv venv
source venv/bin/activate
pip install tensorflow scikit-learn pytorch
pip freeze > requirements.txt
deactivate
|
프로젝트 3: VS Code 완전 설정
workspace 설정 파일 (.vscode/settings.json):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| {
"python.pythonPath": "./venv/bin/python",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.linting.flake8Enabled": true,
"python.formatting.provider": "black",
"python.testing.pytestEnabled": true,
"python.testing.pytestArgs": ["tests"],
"files.associations": {
"*.py": "python"
},
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
|
문제 해결 가이드
자주 발생하는 문제들
“python: command not found”
원인: Python이 PATH에 추가되지 않음
해결방법:
1
2
3
4
5
6
| # Windows
# 시스템 → 고급 시스템 설정 → 환경 변수 → PATH에 Python 경로 추가
# macOS/Linux
echo 'export PATH="/usr/local/bin/python3:$PATH"' >> ~/.bashrc
source ~/.bashrc
|
가상 환경 활성화 실패 (Windows)
원인: PowerShell 실행 정책
해결방법:
1
| Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
pip 설치 실패
원인: 권한 부족 또는 네트워크 문제
해결방법:
1
2
3
4
5
6
7
8
| # 사용자 레벨 설치
pip install --user package_name
# 프록시 환경에서
pip install --proxy http://proxy.company.com:port package_name
# 캐시 무시
pip install --no-cache-dir package_name
|
가상 환경에서 패키지를 찾을 수 없음
원인: 잘못된 Python 인터프리터 사용
해결방법:
1
2
3
4
5
6
7
| # 현재 Python 경로 확인
which python
# 또는
python -c "import sys; print(sys.executable)"
# 가상 환경이 활성화되었는지 확인
echo $VIRTUAL_ENV
|
성능 최적화 팁
pip 설치 속도 향상
1
2
3
4
5
6
7
8
| # pip 업그레이드
python -m pip install --upgrade pip
# 미러 서버 사용 (한국)
pip install -i https://pypi.python.org/simple/ package_name
# 병렬 다운로드 활성화
pip install --upgrade pip setuptools wheel
|
개발 도구 자동화
Makefile 예시:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # Makefile
.PHONY: install test format lint clean
install:
pip install -r requirements.txt
pip install -r requirements-dev.txt
test:
pytest tests/
format:
black src/ tests/
lint:
flake8 src/ tests/
mypy src/
clean:
find . -type d -name "__pycache__" -delete
find . -name "*.pyc" -delete
|
실행:
1
2
3
4
5
| make install # 의존성 설치
make test # 테스트 실행
make format # 코드 포매팅
make lint # 코드 검사
make clean # 캐시 정리
|
체크리스트
기본 설치
가상 환경
개발 도구
프로젝트 구조
고급 기능
다음 단계
🎉 축하합니다! 파이썬 개발 환경 구축을 완료했습니다.
이제 02. 파이썬 기본 문법으로 넘어가서 파이썬의 기본 문법과 데이터 타입을 학습해봅시다.
학습 완료 후 확인사항:
- 가상 환경에서 간단한 Python 코드 실행
- 패키지 설치 및 관리
- 코드 에디터에서 Python 개발
💡 팁: 환경 설정은 한 번만 제대로 해두면 이후 모든 학습이 수월해집니다. 문제가 발생하면 위의 문제 해결 가이드를 참고하세요!