pip install과 conda install을 혼용하면 버전 차이로 인한 dependency error가 생길 수 있다. 따라서 이러한 error를 방지하기 위해서 정리해보았다.
conda? pip?
conda
conda는 anaconda에서 지원을 받는 패키지만을 관리하는 관리자이다. Window, macOS, Linux 등 OS 플랫폼에 맞춰서 미리 빌드된 패키지들을 제공함으로써, 어떤 OS에서든 패키지 및 종속을 빠르게 설치할 수 있다. 또한 패키지 upgrade or downgrade 시에 의존 패키지들도 함께 업데이트된다. conda update --all 명령어로 해당 환경에 설치된 모든 패키지들을 한번에 최신버전으로 upgrade할 수 있다.
pip
pip는 python의 정식 지원을 받는 패키지만을 관리하는 관리자이다. python의 정식 지원을 받은 패키지들을 pypi 서버에 제공함으로써, 최신 버전의 패키지들을 사용할 수 있다. conda는 미리 빌드된 패키지들을 만들고 패키지 의존성까지 맞춰야 하기 때문에 pip의 pypi 서버만큼 최신 버전이 빨리 올라오지 않는다.
패키지 설치 시 주의사항
conda, pip를 혼용하면 이후에 conda update나 install, uninstall 등을 할 때 pip로 설치되었던 패키지는 누락되거나 다른 버전이 깔려있는 것처럼 두 개가 보일 수도 있다. 이 경우 dependency error로 인해 꼬여버리는 상황이 발생하므로 자신만의 원칙을 세우고 설치하는 것이 바람직해 보인다.
개인적인 사용법
본인은 anaconda를 사용하더라도 conda install보다 pip install을 더 선호한다. 왜냐하면 pip에는 패키지가 있지만 conda에는 없는 경우를 종종 겪었기 때문에, pip로 통일해서 사용하게 되었다. 만약 pip로 설치하다가 dependency error가 발생한다면, 그냥 가상환경의 python 버전을 변경해서 다시 설치하고 패키지 버전을 맞춰주면 된다.
또한, 패키지를 설치할 때는 base 환경은 사용하지 않고, 반드시 가상환경을 만들어서 사용한다.
패키지들끼리 충돌이 발생해도 지우고 다시 설치하면 되고, 프로젝트 별로 요구되는 python 버전이 다를 수 있기 때문이다. 이는 anaconda가 아닌 python 가상환경(venv)를 사용할 때도 마찬가지이다.
※ 가상환경 사용법 : ※ [Anaconda] 가상환경 확인/생성/활성화/설치/패키지 확인/패키지 파일 추출/비활성화/삭제