본문 바로가기

프로그래밍/Python

[Anaconda] conda install 과 pip install 은 똑같은 걸까?

반응형

일전에 아나콘다에서의 패키지 설치라는 포스팅을 하였다. 아나콘다에서는 되도록 pip install 보다는 conda install 을 사용하고, 부득이하게 pip install 을 사용해야 하는 조건, pip 의 사용했을 때 이후의 관리에 대해 내가 지키고 있는 원칙을 썼다.

아나콘다에서는 pip 보다 conda 로 패키지를 관리하는 편이 좋다. conda 가 pip보다 패키지 의존성을 더 잘 관리해 주고, pip 에서는 미리빌드된 패키지가 아닌 소스 패키지가 내려와서 cpp 빌드를 시도하다가 에러가 발생하는 경우도 가끔 있는데, 아나콘다의 conda 패키지는 운영체제 플랫폼에 맞추어 미리 빌드된 패키지들이 깔리기 때문에, cpp 빌드 환경설정이 필요 없기 때문이다. (그렇다, pip와 conda 로 인스톨하는 패키지들은 서로 다른 서버에서 가져온, 다른 것이다.) 또한 conda 패키지는 어떤 한 패키지를 업그레이드 또는 다운그레이드 하면, 해당 버전에 따라 의존되는 패키지까지 같이 업그레이드 다운그레이드를 해 준다. conda update --all 같은 명령을 내리면, 해당 가상환경에 깔린 모든 패키지를 한꺼번에 최신으로 올려주기까지 한다.

그러나 여전히 아나콘다 환경에서 pip 로 패키지 설치를 하라는 튜토리얼이나 강좌가 많이 있다. 한가지 이유는 conda 패키지는 미리 빌드된 패키지를 만들고 패키지 의존성까지 맞추기 때문에, pip의 pypi 서버만큼 빨리 최신버전이 올라오지 않는다. 그래서 tensorflow 의 아주 최신 버전이 pip 로는 설치가 되는데, conda 로는 설치가 안되는 상황이 발생하기도 하고, 이런 때에는 부득이 pip 로 설치해야 할 것이다. 하지만, 부득이 pip 로 어떤 패키지를 설치하게 되면, 이후에 conda update나 conda install, uninstall 등으로 패키지를 변경할 경우에 pip 로 설치되었던 패키지는 업데이트에서 누락이 되거나, 다른 버전이 두가지가 깔려있는 것처럼 보이거나 하는 경우가 발생할 수 있다.

초보자들이 개발환경을 설정하면서 겪는 쓸데없는 어려움이 pip 와 conda 로 패키지를 깔았다 지웠다 하면서 생긴 것이 아닐까 하는 의심이 있다. 자신이 그런 어려움을 겪고 있다면, 위에 링크한 아나콘다 패키지 설치 원칙을 한번 잘 읽어보고 주의하길 바란다.

728x90