250x250
vg-rlo
vg-rlo
vg-rlo
전체 방문자
오늘
어제
  • CATEGORY (114)
    • 일상과 기록 (12)
    • REVIEW (11)
    • DATA (20)
      • ML and DL (6)
      • NLP (2)
      • Growth hacking (2)
      • Note (10)
    • CODE (46)
      • Algorithm and Data Structur.. (2)
      • Coding Test (34)
      • DB (2)
      • Python (6)
      • Linux (2)
      • Github (0)
    • Portfolio (6)
      • Pratice and Tutorials (2)
      • Toy Projects (2)
      • Competitions (2)
      • Data Analysis (0)
    • ISSUE (17)
    • 🛠... (0)

블로그 메뉴

  • Github

인기 글

티스토리

hELLO · Designed By 정상우.
vg-rlo

vg-rlo

CODE/Python

[Python] pip와 conda의 차이

2021. 1. 6. 10:23
pip와 conda의 차이점에 대해 https://dailyheumsi.tistory.com/33 글과 https://databonanza.tistory.com/17을 참고하여 공부했습니다.

pip를 맹목적으로 따라치면서 항상 대충 알고 넘어갔던 부분을 짚고 넘어가고자 합니다. 어떤 패키지를 사용하고 싶을 때, pip install 또는 conda install을 사용하게 됩니다. 사실 프로젝트를 할 때 conda가 잘 안되면 pip 쓰고.. 그렇게 설치되는대로만 사용했던 부끄러운 기억이 있습니다.

 

pip와 conda의 큰 차이점

PyPI의 pip - https://pypi.org/project/pip/
PyPI의 conda - https://pypi.org/project/conda/
pip is the package installer for Python. You can use pip to install packages from the Python Package Index and other indexes.
Conda is a cross-platform, language-agnostic binary package manager. It is the package manager used by Anaconda installations, but it may be used for other systems as well. Conda makes environments first-class citizens, making it easy to create independent environments even for C libraries. Conda is written entirely in Python, and is BSD licensed open source.

패키지 공식 설명을 참고하면 pip는 python만 한정된 패키지 관리자이고, conda는 python 뿐만 아니라, c와 Java 등 다른 언어도 포함되는 패키지 관리자라는 점입니다. 따라서 pip install은 python의 정식 지원을 받는 패키지만을 관리하는 관리자인 것이고, conda는 anaconda에서 지원 받는 패키지만을 관리하는 관리자 입니다. 

만약 아나콘다에 가상환경이 없는 채로 진행한다면 두 개의 패키지 설치 관리자는 저장되는 경로 등에서도 차이가 없습니다. 하지만, 가상환경을 이용하면 pip 명령어를 썼을 때 가상환경 디렉토리 내에서 "lib/site-packages" 하위로 패키지가 설치됩니다. pip와 conda의 차이를 살펴보면, 가상환경을 왜 프로젝트 수행시 패키지 관리를 위해 사용해야하는지 알 수 있었습니다.다시 정리해보면, pip는 python 패키지에만 적용됩니다. pip는 소스에서 컴파일 합니다. virtual env를 사용하여 python 환경만 관리합니다. 반면에, conda는 언어에 구애받지 않고 모든 언어의 패키지 관리를 할 수 있습니다. 바이너리를 설치하기 때문에 컴파일 부담을 줄여줍니다. 주로 conda 패키지를  사용하는 것이 좋다고 하지만(Anaconda 환경에서 프로젝트를 할 때를 말하는거 같습니다.) conda에는 pip도 포함됩니다. 종종 conda 패키지는 없지만 pip를 통해 사용 가능한 python 패키지를 설치할 때에는 아래처럼 사용하면 됩니다. 

conda install pip
pip install [패키지명]

단순히 습관적으로 pip를 사용하기 보다는 PyPI에서 해당 패키지가 python에만 종속성을 가지는지에 대해 생각해봐야합니다.

    'CODE/Python' 카테고리의 다른 글
    • [Python] assert
    • [Programmers] for 문과 if문을 한번에
    • [Python]부동소수점(floating point number)
    • [Python]변수의 범위(scope), 매개변수(parameter)
    vg-rlo
    vg-rlo
    🛠블로그 공사중.. Keep going! 🤔 (Profile - Dinotaeng®)

    티스토리툴바