파이썬 프로젝트를 패키징하고 설명하는 데 사용할 수있는 도구의 혼란 역사를 가지고 이러한 포함 distutils
, 표준 라이브러리에서 distribute
, distutils2
그리고 setuptools
(어쩌면 더). 것으로 보인다 distribute
및 distutils2
찬성 중단했다 setuptools
있는 잎이 개 경쟁하는 표준.
내가 이해 setuptools
하는 것보다 훨씬 더 많은 옵션 (예 : 종속성 선언, 테스트 등)을 제공 distutils
하지만 Python 표준 라이브러리에는 포함되어 있지 않습니다 (아직?).
파이썬 포장 사용 설명서 [ 1 ] 지금 권장합니다
setuptools
프로젝트를 정의하고 소스 분배를 작성하는 데 사용하십시오 .
그리고 설명 :
distutils
많은 프로젝트에 순수 를 사용할 수 있지만 다른 프로젝트에 대한 종속성 정의를 지원하지 않으며에서 제공하는 패키지 메타 데이터를 올바르게 자동으로 채우는 몇 가지 편리한 유틸리티가 없습니다setuptools
. 표준 라이브러리 외부의 setuptools는 다른 버전의 Python에서보다 일관된 기능 세트를 제공하며 (와 달리distutils
)setuptools
지원되는 모든 버전에서 곧 출시 될 "Metadata 2.0"표준 형식을 생성하도록 업데이트됩니다.를 사용하기로 선택한 프로젝트의 경우에도
distutils
pip는 사전 빌드 된 휠 파일에서 설치하지 않고 소스에서 직접 이러한 프로젝트를 설치할 때 실제로setuptools
대신 프로젝트를 사용하여 빌드합니다 .
그러나 다양한 프로젝트의 setup.py 파일을 살펴보면 이것이 실제 표준이 아닌 것으로 보입니다. 많은 패키지가 여전히 사용 중이며 distutils
지원하는 패키지 는 폴백 가져 오기 등 을 통해 setuptools
종종 혼합 setuptools
됩니다 distutils
.
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
모두 설치할 수있는 설치 작성하는 방법을 찾기위한 시도를 다음 setuptools
과 distutils
. distutils
설정 기능의 종속성을 지원하지 않기 때문에 여기에는 종종 다양한 오류 발생 종속성 검사 방법이 포함됩니다 .
왜 사람들은 여전히 지원하기위한 추가적인 노력을하고 있습니다 distutils
- 한 사실 setuptools
표준 라이브러리에있는 유일한 이유는 아니다는? 지원 만하는 setup.py 파일을 distutils
작성할 때의 장점 과 단점이 있습니다.setuptools
setuptools
향상된 대안이다 distutils
"고하지만, 참고 권장 핍 설치 프로그램이 모든 setup.py 스크립트를 실행 setuptools
하는 경우에도 스크립트 자체 만 수입distutils
(" 소스 )
distutils
에 다시 통합setuptools
되었지만 사용하도록 작성된 기존 앱distutils
이 있으며 올바른 표준으로 마이그레이션하는 데 드는 비용이 있습니다.