Logo 파이썬

패키지 만들기 — pyproject.toml 시대

곰돌이 | 04.27 | 조회 104 | 좋아요 0

직접 만든 코드를 PyPI에 올려 다른 사람이 pip install로 쓰게 만드는 게 「패키지 발행」입니다.

옛날엔 setup.py가 표준이었지만 지금은 pyproject.toml(PEP 621)이 모던 표준.



최소 구조.

mypackage/ 폴더 안에 __init__.py, 그 옆에 pyproject.toml.

pyproject.toml에 [project] name = "mypackage", version = "0.1.0", description = "...", authors = [...], dependencies = ["requests"].

이게 전부.



빌드 시스템.

[build-system] requires = ["hatchling"], build-backend = "hatchling.build".

hatchling 외에 setuptools·flit·pdm·poetry-core 다 가능.

작은 프로젝트는 hatchling이 깔끔.



빌드와 발행.

pip install build twine.

python -m build — dist/ 안에 .whl과 .tar.gz 생성.

twine upload dist/* — PyPI에 업로드(API 토큰 필요).



버저닝.

0.1.0(major.minor.patch).

호환 안 되는 변경 시 major 증가, 기능 추가 minor, 버그 수정 patch.

한 번 발행한 버전은 재업로드 불가능 — 잘못 올리면 0.1.1로 새 버전.

처음 발행은 0.0.1 또는 0.1.0부터.




한 줄 요약


pyproject.toml(PEP 621)이 모던 패키지 표준.

빌드는 hatchling·setuptools, build로 빌드, twine으로 PyPI 업로드.

한 번 발행한 버전은 재업로드 불가.




더 알아볼 것


- setup.py에서 마이그레이션

- semantic versioning

- __init__.py와 패키지 구조

공유하기
목록보기

목록보기
신고하기

신고 사유를 선택해 주세요.