[python] 핍과 콘다의 차이점은 무엇입니까?

pip파이썬 패키지의 패키지 관리자 라는 것을 알고 있습니다. 그러나 IPython 웹 사이트에서 설치하여 IPython을 설치하는 것을 보았습니다 conda.

pipIPython을 설치 하는 데 사용할 수 있습니까 ? conda이미 다른 파이썬 패키지 관리자로 사용해야하는 이유는 무엇 pip입니까?

차이점은 무엇이며 pip그리고 conda?



답변

Conda 블로그 에서 인용 :

파이썬 세계에 오랫동안 관여해온 우리는 모두 pip, easy_install 및 virtualenv를 알고 있지만 이러한 도구는 특정 요구 사항을 모두 충족하지 못했습니다. 주요 문제는 Python에 중점을두고 소스 코드에 setup.py가없고 Python 사이트에 파일을 설치하지 않는 HDF5, MKL, LLVM 등과 같은 비 Python 라이브러리 종속성을 무시한다는 것입니다. -packages 디렉토리.

Conda는 포장 도구 및 설치 프로그램으로서 그 이상의 기능을 수행합니다 pip. Python 패키지뿐만 아니라 Python 패키지 외부 의 라이브러리 종속성을 처리 합니다. Conda는 또한 가상 환경을 만듭니다 virtualenv.

따라서 Conda 는 Python 및 비 Python 설치 작업을 모두 처리 할 수있는 또 다른 도구 인 Buildout 과 비교해야 합니다.

Conda는 새로운 패키징 형식을 도입하므로 pipConda를 상호 교환 적으로 사용할 수 없습니다 . pipConda 패키지 형식을 설치할 수 없습니다. 두 도구를 나란히 사용할 수 있지만 (로 설치 pip하여 conda install pip) 상호 운용되지는 않습니다.

이 답변을 작성한 후 Anaconda는 Conda 및 Pip 이해대한 새로운 페이지를 게시했습니다 .

이것은 conda와 pip의 주요 차이점을 강조합니다. Pip은 Python 패키지를 설치하는 반면 conda는 모든 언어로 작성된 소프트웨어를 포함 할 수있는 패키지를 설치합니다. 예를 들어, pip를 사용하기 전에 시스템 패키지 관리자를 통해 또는 설치 프로그램을 다운로드하여 실행하여 Python 인터프리터를 설치해야합니다. 반면에 Conda는 Python 인터프리터뿐만 아니라 Python 패키지도 직접 설치할 수 있습니다.

그리고 더

때때로 패키지는 콘다 패키지로 사용할 수 없지만 PyPI에서 사용할 수 있으며 pip와 함께 설치할 수있는 패키지가 필요합니다. 이 경우 conda와 pip를 모두 사용하는 것이 좋습니다.


답변

짧은 요약은 다음과 같습니다.

  • 파이썬 패키지 만.
  • 소스에서 모든 것을 컴파일합니다. 편집 : pip는 바이너리 휠을 사용할 수있는 경우 설치합니다.
  • 핵심 Python 커뮤니티에서 축복을받습니다 (예 : Python 3.4+에는 pip를 자동으로 부트 스트랩하는 코드가 포함되어 있습니다).

콘다

  • 파이썬 불가지론. 기존 패키지의 주요 초점은 Python을위한 것이며 실제로 Conda 자체는 Python으로 작성되었지만 C 라이브러리 또는 R 패키지 또는 실제로는 Conda 패키지를 가질 수도 있습니다.
  • 바이너리를 설치합니다. conda build소스에서 패키지를 빌드 하는 도구가 있지만 conda install이미 빌드 된 Conda 패키지에서 항목을 설치합니다.
  • 외부. Conda는 Continuum Analytics에서 제공하는 Python 배포판 인 Anaconda의 패키지 관리자이지만 Anaconda 외부에서도 사용할 수 있습니다. pip를 설치하여 기존 Python 설치와 함께 사용할 수 있습니다 (기존 설치를 사용해야 할 이유가없는 한 권장하지는 않음).

두 경우 모두 :

  • 파이썬으로 작성
  • 오픈 소스 (Conda는 BSD이고 pip는 MIT입니다)

Conda의 첫 번째 두 가지 요점은 실제로 많은 패키지에서 핍보다 유리합니다. pip는 소스에서 설치하기 때문에 소스 코드를 컴파일 할 수없는 경우 소스를 설치하는 것이 고통 스러울 수 있습니다 (특히 Windows의 경우에 해당하지만 패키지에 어려운 C 또는 FORTRAN 라이브러리가있는 경우 Linux의 경우에도 해당 될 수 있음) 의존성). Conda는 바이너리로 설치하는데, 누군가 (예 : Continuum)가 이미 패키지를 컴파일하는 데 많은 노력을 기울 였기 때문에 설치가 쉽습니다.

자신 만의 패키지를 만들고 싶다면 약간의 차이점도 있습니다. 예를 들어, pip는 setuptools를 기반으로 구축되는 반면 Conda는 자체 형식을 사용하므로 정적 및 파이썬과 무관 한 장점이 있습니다.


답변

다른 답변은 세부 사항에 대한 공정한 설명을 제공하지만 일부 고급 요점을 강조하고 싶습니다.

pip는 python 패키지 의 설치, 업그레이드 및 제거를 용이하게하는 패키지 관리자입니다 . 가상 파이썬 환경 에서도 작동 합니다.

conda는 모든 소프트웨어 (설치, 업그레이드 및 제거) 의 패키지 관리자입니다 . 가상 시스템 환경 에서도 작동 합니다.

conda 디자인의 목표 중 하나는 사용자가 필요로하는 전체 소프트웨어 스택에 대한 패키지 관리를 용이하게하는 것입니다.이 중 하나 이상의 Python 버전은 작은 부분 일 수 있습니다. 여기에는 선형 대수와 같은 저수준 라이브러리, Windows의 mingw와 같은 컴파일러, 편집기, Hg 및 Git과 같은 버전 제어 도구 또는 배포 및 관리가 필요한 모든 것이 포함 됩니다.

버전 관리의 경우 pip를 사용하면 여러 파이썬 환경 을 전환하고 관리 할 수 있습니다.

Conda를 사용하면 C 라이브러리, 컴파일러, 테스트 슈트, 데이터베이스 엔진 등과 같이 버전 번호가 다른 여러 가지 범용 환경 을 전환하고 관리 수 있습니다.

Conda는 Windows 중심이 아니지만 Windows에서는 컴파일이 필요한 복잡한 과학 패키지를 설치하고 관리해야 할 때 현재 사용 가능한 우수한 솔루션입니다.

Windows에서 pip를 통해 이러한 많은 패키지를 컴파일하려고 시도한 시간을 잃어버린 시간을 생각하거나 pip install컴파일이 필요한 세션에서 디버그 세션을 디버그하려고했을 때 울고 싶습니다 .

마지막으로 Continuum Analytics는 일반 패키지 개발자가 패키지 사용자가 할 수있는 고유 한 사용자 정의 (빌드 된) 소프트웨어 스택을 만들 수 있도록 (무료) binstar.org (현재는 anaconda.org )를 호스팅합니다 conda install.


답변

더 혼동하지 말고 콘다 환경 내에서 pip를 사용하여 위의 일반적인 vs. 파이썬 특정 관리자 의견을 확인하십시오.

conda install -n testenv pip
source activate testenv
pip <pip command>

또한 환경의 기본 패키지에 pip를 추가하여 매번 존재하므로 위의 스 니펫을 따를 필요가 없습니다.


답변

Conda for Data Science 기사에서 Continuum 웹 사이트로 인용 하십시오.

콘다 vs 핍

파이썬 프로그래머는 PyPI에서 패키지를 다운로드하고 요구 사항을 관리하기 위해 pip에 익숙 할 것입니다. conda와 pip는 모두 패키지 관리자이지만 매우 다릅니다.

  • Pip은 Python 패키지에만 적용되고 conda는 언어에 구애받지 않으므로 conda를 사용하여 모든 언어의 패키지를 관리 할 수 ​​있습니다. Pip은 소스에서 컴파일하고 conda는 바이너리를 설치하여 컴파일 부담을 제거합니다.
  • Conda는 기본적으로 언어에 구애받지 않는 환경을 만드는 반면 pip는 virtualenv를 사용하여 Python 환경 만 관리합니다. 항상 conda 패키지를 사용하는 것이 좋지만 conda에는 pip도 포함되므로 둘 중 하나를 선택할 필요가 없습니다. 예를 들어, conda 패키지는 없지만 pip를 통해 사용 가능한 python 패키지를 설치하려면 다음과 같이 실행하십시오.
conda install pip
pip install gensim


답변

콘다 에서 인용 : 신화와 오해 (포괄적 인 설명) :

신화 # 3 : 콘다와 핍은 직접적인 경쟁자이다

현실 : Conda와 pip는 서로 다른 목적을 수행하며 소규모 작업 하위 집합 (즉, 격리 된 환경에 Python 패키지 설치)에서만 직접 경쟁합니다.

의미 핍, P IP 나는 nstalls P의 , ackages는 파이썬의 공식인가 한 패키지 관리자이며, 가장 일반적으로 파이썬 패키지 색인 (PyPI)에 게시 된 패키지를 설치하는 데 사용됩니다. pip와 PyPI는 모두 PPA (Python Packaging Authority)에서 관리하고 지원합니다.

간단히 말해서, pip는 Python 패키지의 범용 관리자입니다. conda는 언어에 구애받지 않는 크로스 플랫폼 환경 관리자입니다. 사용자에게는 가장 두드러진 차이점은 아마도 다음과 같습니다. pip는 모든 환경에 파이썬 패키지를 설치합니다. conda는 conda 환경 내에 모든 패키지를 설치합니다. 여러분이하고있는 모든 작업이 격리 된 환경에 파이썬 패키지를 설치하는 것이라면 conda와 pip + virtualenv는 대부분 상호 교환이 가능합니다. 고립 된 환경이란 시스템 파이썬 설치를 수정하지 않고 패키지를 설치할 수있는 conda-env 또는 virtualenv를 의미합니다.

신화 # 2를 따로 떼어 놓아도 Python 패키지 설치에만 집중한다면 conda와 pip는 다른 청중과 다른 목적에 봉사합니다. 예를 들어 기존 시스템 Python 설치 내에서 Python 패키지를 관리하려는 경우 conda는 도움이되지 않습니다. 설계 상으로는 conda 환경 내에서만 패키지를 설치할 수 있습니다. 예를 들어 외부 의존성 (NumPy, SciPy 및 Matplotlib이 일반적인 예)에 의존하는 많은 Python 패키지로 작업하고 이러한 의존성을 의미있는 방식으로 추적하려는 경우 pip는 설계 상으로는 도움이되지 않습니다. Python 패키지와 Python 패키지 만 관리합니다.

Conda와 pip는 경쟁자가 아니라 여러 사용자 그룹과 사용 패턴에 중점을 둔 도구입니다.


답변

WINDOWS 사용자의 경우

“표준”패키징 도구 상황이 최근 개선되고 있습니다.

  • 파이피 자체에는 9 월 현재 휠 패키지의 48 %가 있습니다. 2015 년 11 월 (2015 년 5 월 38 %, 2014 년 9 월 24 %)

  • 휠 형식은 최신 Python 2.7.9에서 기본적으로 지원됩니다.

“standard”+ “tweaks”패키징 툴 상황도 개선되고 있습니다 :

  • http://www.lfd.uci.edu/~gohlke/pythonlibs 에서 거의 모든 과학 패키지를 휠 형식으로 찾을 수 있습니다 .

  • mingwpy 프로젝트는 언젠가 ‘컴파일’패키지를 Windows 사용자에게 제공하여 필요할 때 소스에서 모든 것을 설치할 수 있습니다.

“Conda”패키징은 시장에서 더 나은 상태를 유지하고 “표준” 개선 되어야 하는 영역을 강조합니다 .

(또한 표준 휠 시스템과 콘다 시스템 또는 빌드 아웃에서 종속성 사양 다중 노력은 매우 비판적이지 않습니다.이 모든 포장 ‘핵심’기술이 일종의 PEP를 통해 수렴 할 수 있다면 좋을 것입니다)