저는 여가 시간에 우리가 직장에서 뛰고있는 풋 티핑 대회를 위해 django 애플리케이션을 작성하고 있습니다. 이 시간을 현명하게 사용하고 virtualenv, pip, packaging, django 1.3 및 쉽게 재배포 가능한 응용 프로그램을 작성하는 방법에 대해 알아 보았습니다. 여태까지는 그런대로 잘됐다.
나는 포장 부분까지입니다. 예를 들어 GitHub의 많은 django 앱은 대부분 (대략) 동일한 방식으로 번들로 제공됩니다. 내가 사용합니다 장고 – 유니 형태를 예로 들어.
내가 만들고있어 가정이있는 그 MANIFEST.in
와 setup.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 빠르고 더러운