PowerShell에서 Python Poetry 설치 및 PyPI 배포 가이드
작성일: 2025-04-29
📌 개요
이 글은 Windows 환경에서 PowerShell을 사용하여 Python의 패키지 관리 도구인 Poetry를 설치하고, 이를 활용해 PyPI에 패키지를 배포하는 과정을 자세히 안내합니다. 또한, 설치 후 생성되는 폴더인 pypoetry
의 의미도 함께 설명합니다.
1. Poetry란?
Poetry는 Python의 패키지 및 의존성 관리, 빌드, 배포 등을 현대적으로 통합 관리할 수 있게 해주는 도구입니다. setup.py
, requirements.txt
, virtualenv
, twine
등의 기능을 하나로 통합해 줍니다.
주요 기능
- 프로젝트 생성 및 관리
- 의존성 자동 설치 및 잠금(lock)
- 가상환경 자동 생성
- PyPI 배포 지원
2. PowerShell에서 Poetry 설치 방법
1️⃣ Python 설치 확인
python --version
없다면 https://www.python.org/downloads/windows/ 에서 설치하고, "Add Python to PATH" 옵션을 체크하세요.
2️⃣ Poetry 설치
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
3️⃣ 환경 변수 설정
poetry
명령이 인식되지 않는다면 다음 경로를 환경 변수에 추가합니다:
%USERPROFILE%\AppData\Roaming\Python\Scripts\
4️⃣ 설치 확인
poetry --version
3. Poetry를 사용한 PyPI 배포
1️⃣ 프로젝트 생성
poetry new my_package
cd my_package
2️⃣ pyproject.toml 설정 예시
[tool.poetry]
name = "my-package"
version = "0.1.0"
description = "A simple example package"
authors = ["홍길동 <hong@example.com>"]
[tool.poetry.dependencies]
python = "^3.8"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
3️⃣ 패키지 빌드
poetry build
4️⃣ PyPI 토큰 설정 및 배포
poetry config pypi-token.pypi your_token_here
poetry publish --build
TestPyPI를 사용할 경우:
poetry config repositories.test-pypi https://test.pypi.org/legacy/
poetry publish --build -r test-pypi
4. C:\Users\<사용자>\AppData\Roaming\pypoetry
폴더란?
Poetry 설치 후 생성되는 pypoetry
폴더는 사용자 설정, 캐시, 가상환경, 인증 정보 등을 저장하는 디렉토리입니다.
주요 구성
파일/폴더 | 설명 |
---|---|
auth.toml |
PyPI 인증 토큰 저장 |
config.toml |
사용자 환경 설정 (가상환경 등) |
virtualenvs/ |
생성된 가상환경 목록 |
plugins/ |
Poetry 플러그인 저장 위치 |
cache/ |
패키지 캐시 |
삭제하면 초기화되지만, 문제가 없으면 그대로 두는 것이 좋습니다.
✅ 요약
항목 | 설명 |
---|---|
Poetry 역할 | Python 의존성, 빌드, 배포 통합 도구 |
설치 명령 | PowerShell에서 Invoke-WebRequest 명령 사용 |
배포 대상 | PyPI 또는 TestPyPI |
pypoetry 폴더 | 설정 및 사용자 데이터 저장 경로 |
📎 참고 링크
'python' 카테고리의 다른 글
🔧 VS Code에서 Poetry 가상환경 제대로 연동하는 방법 (pyenv + launch.json 설정 포함) (0) | 2025.04.29 |
---|---|
[python] 중첩 함수(nested function) (0) | 2024.04.09 |
[python] first-class object (일급 객체) (0) | 2024.04.09 |
python Unlimited Arguments(무제한 인자) (0) | 2024.04.08 |
[python] 데코레이터(decorator) (0) | 2024.04.07 |