PythonPython 기초강의 10개 중 8번째난이도 입문

외부 패키지와 가상환경 — 파이썬 프로젝트 관리

발행 읽는 시간 약 2 분

  • Python
  • pip
  • venv
  • 가상환경
  • 패키지
  • 의존성

강의 소개

pip로 외부 패키지를 설치하고, venv로 프로젝트별 가상환경을 만들고, requirements.txt로 의존성을 관리하는 방법을 배웁니다.

파이썬 생태계의 힘#

파이썬이 강력한 이유 중 하나는 방대한 패키지 생태계입니다.

Diagram · Mermaid

직접 모든 기능을 구현하지 않아도 됩니다.


pip: 패키지 관리자#

Bash
# 패키지 설치
pip install openai

# 특정 버전 설치
pip install openai==1.10.0

# 여러 패키지 한 번에
pip install openai langchain chromadb

# 업그레이드
pip install --upgrade openai

# 삭제
pip uninstall openai

# 설치된 패키지 목록
pip list

# 특정 패키지 정보
pip show openai

가상환경이 필요한 이유#

Diagram · Mermaid

프로젝트마다 독립된 파이썬 환경을 만들어 패키지 버전 충돌을 방지합니다.


venv: 가상환경 만들기#

Bash
# 프로젝트 폴더 이동
mkdir my_project && cd my_project

# 가상환경 생성
python -m venv venv

# 가상환경 활성화
# macOS/Linux:
source venv/bin/activate

# Windows:
venv\Scripts\activate

# 활성화 확인 (프롬프트 앞에 (venv) 표시)
(venv) $ python --version

# 가상환경 비활성화
deactivate

requirements.txt: 의존성 기록#

Bash
# 현재 설치된 패키지를 파일로 저장
pip freeze > requirements.txt

# 파일에서 패키지 일괄 설치 (다른 환경 세팅 시)
pip install -r requirements.txt

requirements.txt 예시:

Text
openai==1.12.0
langchain==0.1.9
langchain-openai==0.0.8
chromadb==0.4.22
fastapi==0.109.2
uvicorn==0.27.1
python-dotenv==1.0.1
pydantic==2.6.1

.gitignore: 제외할 파일 설정#

가상환경과 비밀 키는 Git에 올리면 안 됩니다.

Gitignore
# .gitignore
venv/
.env
__pycache__/
*.pyc
.DS_Store
*.log

프로젝트 표준 구조#

Text
my_llm_project/
├── venv/               # ← .gitignore에 추가
├── .env                # ← .gitignore에 추가
├── .gitignore
├── requirements.txt
├── README.md
├── main.py
├── config.py           # 설정값 모음
└── utils/
    ├── __init__.py
    └── helpers.py

.env: 환경변수 관리#

API 키 같은 민감한 정보는 코드에 직접 쓰지 않습니다.

Bash
# .env 파일
OPENAI_API_KEY=sk-proj-...
TAVILY_API_KEY=tvly-...
DATABASE_URL=postgresql://localhost/mydb
DEBUG=true
Python
# config.py
from dotenv import load_dotenv
import os

load_dotenv()  # .env 파일 로드

OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
TAVILY_API_KEY = os.getenv("TAVILY_API_KEY")
DEBUG = os.getenv("DEBUG", "false").lower() == "true"

if not OPENAI_API_KEY:
    raise ValueError("OPENAI_API_KEY가 설정되지 않았습니다.")

자주 쓰는 패키지 목록#

분야패키지용도
LLMopenai, anthropicLLM API 호출
에이전트langchain, langgraph에이전트 프레임워크
벡터 DBchromadb, pinecone-client임베딩 저장·검색
웹fastapi, uvicornAPI 서버
HTTPrequests, httpxHTTP 클라이언트
데이터pandas, numpy데이터 처리
설정python-dotenv, pydantic환경변수·검증
테스트pytest단위 테스트

실전: 새 프로젝트 시작 체크리스트#

Bash
# 1. 폴더 생성
mkdir my_project && cd my_project

# 2. 가상환경 생성·활성화
python -m venv venv
source venv/bin/activate  # (또는 Windows: venv\Scripts\activate)

# 3. 필요 패키지 설치
pip install openai python-dotenv

# 4. 설정 파일 생성
touch .env .gitignore requirements.txt

# 5. .gitignore 작성
echo "venv/\n.env\n__pycache__/" > .gitignore

# 6. 의존성 저장
pip freeze > requirements.txt

# 7. 코딩 시작!

pyproject.toml: 현대적 방법#

최근에는 requirements.txt 대신 pyproject.toml을 쓰는 추세입니다.

Toml
[project]
name = "my-llm-project"
version = "0.1.0"
requires-python = ">=3.11"
dependencies = [
    "openai>=1.10.0",
    "langchain>=0.1.9",
    "python-dotenv>=1.0.0",
]
Bash
# uv: 빠른 파이썬 패키지 관리자 (pip 대체)
pip install uv

uv init my_project
uv add openai langchain
uv run python main.py

정리#

명령어설명
pip install package패키지 설치
pip freeze > req.txt현재 패키지 목록 저장
pip install -r req.txt목록에서 일괄 설치
python -m venv venv가상환경 생성
source venv/bin/activate가상환경 활성화
deactivate가상환경 비활성화

다음 편에서는 HTTP 요청 — requests와 httpx로 외부 API를 호출하는 방법을 배웁니다.

Follow · Ask · Work

이 글이 도움이 됐다면

짧은 작업 기록과 데모는 인스타그램에 올립니다. 만들고 싶은 것이 있다면 프로젝트 의뢰나 협업 제안도 편하게 보내 주세요.

글쓴이

파란여우

직접 만든 AI 앱·제품의 개발·배포를 공개하는 실전형 테크 크리에이터

파란여우 소개 Instagram @bluefox._.hi

이어서 보기

만들고 싶은 것이 있다면 프로젝트 의뢰로 알려 주세요.