Python MANIFEST.in 그리고 graft

2017-02-07

MANIFEST.in

    파이썬 스크립트 외의 파일을 배포할 때 setup()에 인자로 넣어서 지정하는 방법이 있다. 플라스크 튜토리얼을 보고 있는 중이기 때문에 그 튜토리얼대로 MANIFEST.in을 사용하려고 한다.

    setuptools를 쓸 때 패키지에 포함되어야하는 파일들을 MANIFEST.in에 지정해야하며 이 경우 정적 및 템플릿 디렉토리뿐만 아니라 스키마도 포함시켜야한다. MANIFEST.in파일은 아래와 같이 작성한다. 아래의 예시는 플라스크 문서에서 가져왔다.

graft flaskr/templates
graft flaskr/static
include flaskr/schema.sql

    아래의 명령을 실행하면 dist 디렉터리가 생기고 배포 판이 만들어진다.

python setup.py sdist

graft

    MANIFEST.in파일을 작성할 때 사용한다. 아래 사진과 예제를 보면 이해가 될 것이다. recursive-include 대신 graft

    예 1

# Instead of this
recursive-include tests/functional *
recursive-include tests/unit *
recursive-include tests/old_suite *
recursive-include tests *.txt

# Do this
graft tests

    예 2

# Instead of this
recursive-exclude docs *.pyc
recursive-exclude docs *.pyo
recursive-exclude tests *.pyc
recursive-exclude tests *.pyo
recursive-exclude examples *.pyc
recursive-exclude examples *.pyo

# Do this
global-exclude *.py[co]

참고자료