[python] pip 설치가 가능하도록 파이썬 애플리케이션을 어떻게 패키징합니까?

저는 여가 시간에 우리가 직장에서 뛰고있는 풋 티핑 대회를 위해 django 애플리케이션을 작성하고 있습니다. 이 시간을 현명하게 사용하고 virtualenv, pip, packaging, django 1.3 및 쉽게 재배포 가능한 응용 프로그램을 작성하는 방법에 대해 알아 보았습니다. 여태까지는 그런대로 잘됐다.

나는 포장 부분까지입니다. 예를 들어 GitHub의 많은 django 앱은 대부분 (대략) 동일한 방식으로 번들로 제공됩니다. 내가 사용합니다 장고 – 유니 형태를 예로 들어.

내가 만들고있어 가정이있는 그 MANIFEST.insetup.py핍 필요가 작업을 할 수있는 유일한 필요한 부분이다. 그 맞습니까? 내 가정이 잘못된 경우 어떤 다른 구성 요소가 필요합니까?

필요한 패키징 파일이 일반적으로 생성됩니까, 아니면 수작업으로 제작됩니까? 종속성을 설명하고 설치할 수도 있습니까? 내 응용 프로그램은에 종속되어 있으며 종속성을 설치하는 데 사용한 앱 내의 파일에 django-uni-forms나열되어 있습니다 requirements.txt. 하지만 그게 패키징 시스템이 처리 할 수있는 것입니까?

pip가 애플리케이션과 모든 종속성을 설치할 수 있도록 애플리케이션을 패키징하기 위해 따라야하는 단계는 무엇입니까?



답변

예, MANIFEST.in그리고 setup.py충분합니다.

이 블로그 게시물에는이 주제에 대한 좋은 정보
가 있습니다. Django 재사용 가능한 앱 패키징

저에게 많은 도움이 된 또 다른 훌륭하고 상세한 개요가 있습니다.
Python Packaging User Guide

특히 처음에는 명확하지 않을 수 있으므로 정적 파일 (템플릿)을 포함하기위한 팁이 중요합니다.

예, setup.py앱을 설치할 때 자동으로 가져 오는 필수 패키지를 지정할 수 있습니다.

예를 들면 :

    install_requires = [
        'django-profiles',
        'django-uni-forms',
    ],

분명히 이제 종속성이 정의 된 두 위치가 있지만 이것이 반드시 이러한 정보가 중복된다는 것을 의미하지는 않습니다. setup.py 대 requirements.txt

이 설정을 사용하면을 통해 패키지를 설치할 수 있습니다 pip.


Pierre가 주석에서 언급했듯이 이제 Django의 공식 문서에 관련 섹션이 있습니다. 앱 패키징

그리고이 “완전히 불완전한”가이드가 있는데, 패키지를 PyPI에 패키징하고 업로드하는 것에 대한 훌륭한 개요를 제공합니다 : 사랑의 노동 공유 : PyPI 빠르고 더러운


답변