'python setup.py install'과 'pip install'의 차이점


109

tar 파일에서 Python virtualenv에 설치하려는 외부 패키지가 있습니다. 패키지를 설치하는 가장 좋은 방법은 무엇입니까?

나는 그것을 할 수있는 두 가지 방법을 발견했습니다.

  1. tar 파일을 python setup.py install추출한 다음 추출 된 디렉토리 내에서 실행 합니다.
  2. pip install packagename.tar.gzhttps://pip.pypa.io/en/stable/reference/pip_install/#examples의 예제 # 7에서

이 두 가지 방법으로 차이가 있는지 여부입니다.


5
사용 pip. 패키지를 제거 할 수 있습니다.
Blender 2013 년

"VCS 체크 아웃"에서와 같이 "소스에서"또는 sdist?

"최고"는 요구 사항에 따라 다릅니다! 이러한 솔루션 중 하나를 시도했지만 어떤 식 으로든 부족하여 실패 했습니까? 아니면 이러한 접근 방식 의 차이점 무엇인지 묻고 있습니까?
Martin Atkins 2013 년

예를 들어 페도라에서는 yum.
perreal

답변:


112

표면적으로는 둘 다 똑같은 일을한다 : 최소한의 소란으로 파이썬 패키지를 설치 python setup.py install하거나 pip install <PACKAGE-NAME>설치할 것이다.

그러나 pip를 사용하면 사용하기 훨씬 더 좋은 몇 가지 추가 이점이 있습니다.

  • pip는 패키지에 대한 모든 종속성을 자동으로 다운로드합니다. 반대로를 사용하는 경우 setup.py종속성을 수동으로 검색하고 다운로드해야하는 경우가 많으며 이는 지루하고 실망 스러울 수 있습니다.
  • pip는 단일 명령으로 패키지를 쉽게 제거하고 업데이트 할 수있는 다양한 메타 데이터를 추적합니다. pip uninstall <PACKAGE-NAME>pip install --upgrade <PACKAGE-NAME>. 반대로를 사용하여 패키지를 설치하는 경우 제거하려면 setup.py수동으로 패키지를 삭제하고 유지 관리해야하며, 이는 잠재적으로 오류가 발생할 수 있습니다.
  • 더 이상 파일을 수동으로 다운로드 할 필요가 없습니다. 사용하는 경우setup.py 라이브러리의 웹 사이트를 방문하여 다운로드 할 위치를 파악하고 파일을 추출한 다음 실행해야합니다 setup.py. 반대로 pip는 패키지가 있는지 확인하기 위해 Python 패키지 색인 (PyPi)을 자동으로 검색합니다. 자동으로 패키지를 다운로드, 추출 및 설치합니다. 몇 가지 예외를 제외하고 거의 모든 진정으로 유용한 Python 라이브러리는 PyPi에서 찾을 수 있습니다.
  • 핍은 당신에게 Python 배포의 새로운 표준 인 wheel 쉽게 설치할 있습니다 . 바퀴에 대한 추가 정보 .
  • pip는 사용과 잘 통합되는 추가 혜택을 제공합니다. virtualenv 컴퓨터에서 충돌하는 라이브러리와 Python 버전이 필요한 여러 프로젝트를 실행할 수있는 프로그램 인 합니다. 더 많은 정보 .
  • pip는 기본적으로 Python 2.x 시리즈의 Python 2.7.9 및 Python 3.x 시리즈의 Python 3.4.0부터 번들로 제공되므로 사용하기가 훨씬 더 쉽습니다.

따라서 기본적으로 pip를 사용하십시오. 그것은 사용에 대한 개선만을 제공합니다python setup.py install .


이전 버전의 Python을 사용 중이고 업그레이드 할 수 없으며 pip가 설치되어 있지 않은 경우 다음 링크에서 pip 설치에 대한 자세한 정보를 찾을 수 있습니다.

pip 자체는 실제로 튜토리얼이 필요하지 않습니다. 90 %의 경우 실제로 필요한 유일한 명령은 pip install <PACKAGE-NAME>. 즉, pip로 정확히 수행 할 수있는 작업에 대해 자세히 알아 보려면 다음을 참조하십시오.

또한 일반적으로 pip와 virtualenv를 함께 사용하는 것이 좋습니다. Python 초보자라면 개인적으로 pip를 사용하여 시작하여 전 세계적으로 패키지를 설치하는 것이 좋을 것이라고 생각하지만 결국에는 더 심각한 프로젝트를 처리 할 때 virtualenv 사용으로 전환해야한다고 생각합니다.

pip와 virtualenv를 함께 사용하는 방법에 대해 자세히 알아 보려면 다음을 참조하세요.


1
pip install은 내부적으로 setup.py 파일을 호출합니까?
변수

@variable, pip install from "wheels", pre-compiled packages, does not, pip install from source does : see pip install build system interface
denis

내 경험상 python setup.py install종속성도 다운로드하고 설치합니다. 2013 년에이 답변을 작성한 이후 변경 되었습니까?
Ken Williams

19

python setup.py installmake install과 유사합니다. 파일을 컴파일하고 대상 디렉토리로 복사하는 제한된 방법입니다. 이것이 실제로 시스템에 소프트웨어를 설치하는 가장 좋은 방법이라는 의미는 아닙니다.

pip패키지 관리자는 다음과 같은 익숙한 패키지 관리자와 같이 패키지를 설치, 업그레이드, 나열 및 제거 할 수 있습니다 dpkg, apt, yum, urpmi, ports. 내부적으로는 실행 python setup.py install되지만 설치 방법과 위치를 제어하는 ​​특정 옵션이 있습니다.

요약하면 pip.


2

질문에 관한 로컬 타르볼 설치하는 기본 방법 파이썬 패키지에 포함 되지 PyPi 같은 인덱싱 서비스에 업로드 패키지의 장점에 대한합니다.

일부 소프트웨어 배포자는 PyPi에 패키지를 업로드하지 않고 개발자에게 웹 사이트에서 패키지를 다운로드하여 설치하도록 요청합니다.

python setup.py 설치

이것은 작동 할 수 있지만 권장되지는 않습니다. tarball 파일을 풀고 setup.py 파일을 실행하기 위해 들어갈 필요는 없습니다.

pip 설치 ../path/to/packagename.tar.gz

이것이 설계되고 선호되는 방식입니다. 간결하고 PyPi 스타일 패키지와 일치합니다.

자세한 내용은 https://pip.readthedocs.io/en/stable/reference/pip_install/pip install 에서 찾을 수 있습니다.


pip install -e를 사용할 수 있습니까?
변수
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.