728x90
반응형

Python 프로젝트를 시작할 때, 의존성 관리와 가상환경 설정을 효율적으로 처리하려면 Poetry를 사용하는 것이 좋습니다. 이 글에서는 Poetry를 이용해 Python 패키지를 초기화하는 과정을 단계별로 설명합니다.


1. Poetry란?

Poetry는 Python 프로젝트의 의존성 관리, 가상환경 설정, 그리고 패키징을 쉽게 해주는 도구입니다. 기존의 piprequirements.txt를 사용하는 방식보다 더 현대적이고 강력한 기능을 제공합니다.

주요 기능:

  • 의존성 추가 및 관리 (dependencies, dev-dependencies 분리)
  • 가상환경 자동 생성 및 관리
  • 프로젝트 설정 파일 (pyproject.toml) 생성
  • 배포 준비 (패키징 및 배포 기능 포함)

2. Poetry 설치

Poetry는 Python 패키지로 설치할 수 있습니다. 아래 명령어를 실행해 설치하세요:

pip install poetry

설치 확인:

poetry --version

3. 프로젝트 디렉토리 생성

먼저 프로젝트 디렉토리를 생성합니다:

mkdir my_project && cd my_project

여기서 my_project는 프로젝트 이름입니다.


4. Poetry로 프로젝트 초기화

Poetry를 이용해 프로젝트를 초기화합니다:

poetry init

이 명령어를 실행하면 대화형 프롬프트가 나타납니다. 아래는 입력 예시입니다:

This command will guide you through creating your pyproject.toml config.

Package name [my_project]:  
Version [0.1.0]:  
Description []: A sample Python project using Poetry
Author []: Your Name <your.email@example.com>
License []: MIT
Compatible Python versions [^3.8]: ^3.8
Would you like to define your main dependencies interactively? (yes/no) [yes]: no
Would you like to define your development dependencies interactively? (yes/no) [yes]: no

입력이 끝나면 프로젝트의 기본 설정이 pyproject.toml 파일에 저장됩니다.


5. 의존성 추가

Poetry를 사용해 프로젝트의 의존성을 추가합니다.

런타임 의존성 추가

예를 들어, Flask와 Requests 라이브러리를 추가하려면:

poetry add flask requests

개발 의존성 추가

테스트와 코드 품질 관리를 위해 pytestblack을 개발 의존성으로 추가:

poetry add --dev pytest black

6. 가상환경 관리

Poetry는 기본적으로 프로젝트 디렉토리 외부에 가상환경을 생성합니다. 가상환경을 활성화하려면:

poetry shell

가상환경을 종료하려면:

exit

가상환경이 어디에 생성되었는지 확인하려면:

poetry env info

7. 디렉토리 구조 설정

아래와 같은 기본 디렉토리 구조를 생성합니다:

mkdir src tests
mkdir src/my_project

src/my_project/__init__.py 파일을 생성하여 패키지로 인식되도록 설정:

touch src/my_project/__init__.py

테스트 디렉토리에도 기본 테스트 파일을 추가합니다:

touch tests/test_basic.py

8. 파일 생성

README 파일

프로젝트 설명을 위한 README.md 파일을 생성합니다:

echo "# My Project\nA sample Python project using Poetry." > README.md

.gitignore 파일

Git에 추가되지 않아야 할 파일을 정의하는 .gitignore 파일을 생성합니다:

curl https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore -o .gitignore

9. 스크립트 실행

가상환경에서 스크립트를 실행하려면:

poetry run python src/my_project/__init__.py

10. 최종 디렉토리 구조

설정을 완료한 뒤, 최종 디렉토리 구조는 아래와 같습니다:

my_project/
├── src/
│   └── my_project/
│       └── __init__.py
├── tests/
│   └── test_basic.py
├── README.md
├── .gitignore
├── pyproject.toml
├── poetry.lock

11. Poetry의 추가 기능

의존성 설치

pyproject.toml 파일에 정의된 의존성을 설치하려면:

poetry install

패키지 빌드

프로젝트를 패키징하려면:

poetry build

패키지 배포

PyPI에 패키지를 배포하려면:

poetry publish

결론

Poetry를 사용하면 Python 프로젝트의 초기화부터 의존성 관리, 패키징까지 모든 과정을 간단하고 체계적으로 관리할 수 있습니다. 위 과정을 따라가며 프로젝트를 시작해 보세요!

반응형