Python에서 의존성 관리는 매우 중요합니다.
Python은 인터프리터 언어로 편리하지만, 그만큼 에러가 발생할 가능성이 높기 때문에 체계적인 환경 구성이 필요합니다.
이 가이드에서는 Docker와 Poetry를 활용한 가상환경 구성 및 의존성 관리 방법을 소개합니다.
Docker를 이용해 특정 Python 버전을 실행합니다.
docker pull python:3.10
이후, 컨테이너 내부에서 가상환경을 만들어 관리하는 것이 좋습니다.
다음 예제 코드를 사용하여 실습 환경을 구성하겠습니다.
🔗 fastapi-book-example 프로젝트를 가져옵니다.
git clone https://github.com/rumbarum/fastapi-book-example
cd fastapi-book-example
python -m venv fastapi
source fastapi/bin/activate # (Windows의 경우 `fastapi\Scripts\activate`)
Poetry는 Python 패키지 및 의존성을 체계적으로 관리하는 도구입니다.
pip install poetry
pyproject.toml 확인[tool.poetry]
name = "src"
version = "0.1.0"
description = ""
authors = ["Bareum Han <rumbarum@gmail.com>"]
readme = "README.md"
🔹 src 디렉토리가 기본 패키지 경로로 설정되어 있습니다.
🔹 더 직관적인 구조를 위해 main으로 변경하고 main/__init__.py 파일을 생성합니다.
mv src main
touch main/__init__.py
아래 명령어를 실행하면 pyproject.toml을 기준으로 필요한 패키지를 자동 설치합니다.
poetry install
🔹 Python에서 모든 패키지가 설치되었음에도 불구하고, 노란색 밑줄이 생기는 경우가 있습니다.
🔹 이럴 때 VS Code에서 Python 인터프리터를 다시 선택하면 해결될 수 있습니다.
1️⃣ Ctrl + Shift + P 누른 후
2️⃣ Python: Select Interpreter 검색
3️⃣ 가상환경에 해당하는 Python을 선택
1️⃣ fastapi/bin/python3.10 선택
2️⃣ 수동으로 인터프리터 경로를 설정
Poetry를 사용하면 다양한 의존성 관리 명령어를 활용할 수 있습니다.
| 명령어 | 설명 |
|---|---|
poetry show --tree | 📌 현재 설치된 패키지를 트리 형태로 출력 |
poetry add pendulum | 📥 특정 패키지(pendulum) 설치 |
poetry remove pendulum | ❌ 특정 패키지 제거 |
poetry update | ⬆️ 모든 패키지를 최신 버전으로 업데이트 |
poetry lock | 🔒 의존성을 poetry.lock 파일로 고정 |
🔗 Poetry 공식 홈페이지에서 더 많은 명령어를 확인할 수 있습니다.
이제 Docker + 가상환경 + Poetry를 이용하여 Python 프로젝트의 의존성을 체계적으로 관리할 수 있습니다.
Poetry를 사용하면 패키지 설치 및 업데이트가 간편해지고,
환경이 일관되게 유지되므로 배포 및 협업이 훨씬 원활해집니다. 🚀