2012-05-23 6 views
5

패키지 색인에서 dateutil을 사용하는 프로그램이 있습니다. setup.py가 그 존재를 확인하고 거기에 없으면 easy_install을 사용하여 얻으려고합니다. python 3.x distutils를 사용하여 패키지를 설치하고 설치하는 방법은 무엇입니까?

The documentation for distutils

는이 setup()requires 키워드를 사용하여 수행 할 수 있음을 나타냅니다 것 같다,하지만 난 할 때, 그것은 경고를 주거나 필요한 패키지를 설치하지 않고 dateutil없이 시스템에 설치합니다.

Google에서 찾을 수있는 유일한 것은 답변도 없었던 this blog post about the same issue뿐입니다.

나는 distutils을 잘못 사용하고 있습니까? distutils.command.install의 하위 클래스를 만들고 자신을 확인/설치해야합니까?

답변

4

종속성 자동 다운로드는 setuptools에 의해 도입 된 기능으로, distutils에 대한 써드 파티 추가 기능, 특히 install_requires 인수가 추가되었습니다. 자세한 내용은 setuptools documentation을 참조하십시오.

또 다른 옵션은 easy_install을 패키지 설치 프로그램으로 사용하는 대신 pip과 함께 파일을 사용하는 것입니다. pip이 이제 권장 설치 프로그램이되었습니다. 자세한 내용은 Python Packaging User Guide을 참조하십시오.

업데이트 [2015-01] :이 답변의 이전 버전은 포크 setuptools을 참조했습니다. distribute 포크는 이후 새로운 활성 setuptools 프로젝트로 병합되었습니다. distribute은 이제 죽었으므로 더 이상 사용하지 않아야합니다. setuptoolspip 지금 매우 적극적으로 유지 관리 및 지원 파이썬 3

+0

은의 distutils의 인수는 사용할 수 없습니다 필요 PEP 345가 널리 사용되기 전까지는 pip 요구 사항 파일이나 setuptools의 install_requires 인수를 사용해야합니다 (install_requires가 공식적으로 지원되며 require-dist, distutils2가 지원됩니다). –

+0

NB :이 의견은 구식이되었습니다. 배포 및 설정 도구가 병합되었습니다. Setuptools는 이제 전체 3.x를 지원합니다. – Kevin

+0

@ 케빈, 알림 주셔서 감사합니다; 원래 답변이 작성된 이후로 많은 부분이 변경되었습니다. 필자는 배포판과 setuptools의 병합, distutils2 개발의 끝, 공식 Python 패키지 설치 관리자 인'pip'의 축복, 그리고 새로운'Python Packaging User ' 안내 '. –

0

설정 함수의 인수 install_requires의 distutils 내가 좋아하는, sdist 분배를 만들 경우에만 잘 날 위해 일하는에서됩니다 python setup.py sdist

+0

'install_requires'는 ** distutils.core.setup의 인수가 아닙니다 ** distribute-setuptools의 추가 인수입니다 (http://pythonhosted.org/distribute/setuptools.html#new-and- changed-setup-keywords). 이전에 @Ned처럼'setup'의 배포 버전을 사용해야합니다. 파이썬에서 [패키징 모듈의 상태를 설명하는이 대답] (http://stackoverflow.com/a/14753678/965798)을 볼 수도 있습니다. – marcz

관련 문제