패키지 시작하기

Python 패키지 개발하기

James Fulton

Climate informatics researcher

왜 패키지를 만들까요?

  • 코드를 더 쉽게 재사용하기 위해서
  • 복사/붙여넣기를 줄이기 위해서
  • 함수를 최신 상태로 유지하기 위해서
  • 코드를 다른 사람과 공유하기 위해서
Python 패키지 개발하기

강의 내용

이 강의에서는 전체 패키지를 만들며 다음을 다룹니다:

  • 파일 레이아웃
  • import 구조
  • 패키지 설치 가능하게 만들기
  • 라이선스와 README 추가
  • 고품질을 위한 스타일과 단위 테스트
  • PyPI 등록 및 배포
  • 패키지 템플릿 사용
Python 패키지 개발하기

스크립트, 모듈, 패키지

  • 스크립트: python myscript.py처럼 실행하는 Python 파일

  • 패키지: import할 Python 코드가 들어 있는 디렉터리

    • 예: numpy
  • 하위 패키지: 패키지 내부의 작은 패키지

    • 예: numpy.random, numpy.linalg
  • 모듈: 패키지 코드가 담긴 패키지 내부의 Python 파일

    • 예: 다음 2장의 예시에서 설명
  • 라이브러리: 패키지 또는 패키지 모음

    • 예: Python 표준 라이브러리(math, os, datetime, ...)
Python 패키지 개발하기

패키지의 디렉터리 트리

단순 패키지의 디렉터리 트리

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • mysimplepackage 디렉터리는 Python 패키지입니다
  • simplemodule.py에 패키지 코드가 모두 들어 있습니다
  • __init__.py가 이 디렉터리를 Python 패키지로 표시합니다
Python 패키지 개발하기

단순 패키지의 내용

__init__.py

빈 파일

simplemodule.py
def cool_function():
    ...
    return cool_result

...

def another_cool_function():
    ...
    return another_cool_result

일반화된 함수와 코드가 담긴 파일입니다.

Python 패키지 개발하기

하위 패키지

하위 패키지가 있는 패키지의 디렉터리 트리

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Python 패키지 개발하기

연습해 봅시다!

Python 패키지 개발하기

Preparing Video For Download...