Python 환경 관리: alternatives, poetry, conda
- alternatives (심볼링 링크 자동화)
- 장점:
간단한 방식으로 시스템 전체에서 사용할 Python 버전을 쉽게 변경할 수 있습니다. - 단점:
프로젝트별 가상 환경을 지원하지 않아, 여러 프로젝트에서 서로 다른 종속성을 가진 경우 관리가 어렵습니다.
- 장점:
-
poetry (가상환경)
virtualenv로 가상환경을 생성하고 pypi에서 패키지를 가져옵니다.- 장점:
프로젝트별 가상 환경을 지원하여 서로 다른 종속성을 가진 프로젝트를 관리할 수 있습니다.
종속성의 버전을 자동으로 관리하며, 메타데이터와 종속성을 선언하는 pyproject.toml 파일을 사용하여 명시적으로 종속성을 기록합니다.
프로젝트별 가상 환경 관리를 자동으로 지원합니다. - 단점:
Python 버전 관리 기능이 약합니다. 별도의 버전 관리 도구를 함께 사용해야 할 수도 있습니다.
기존의 requirements.txt로 종속성을 관리할 수 없습니다 (poetry add $(cat requirements.txt) 형태로 가져올 수는 있습니다)
- 장점:
-
conda (가상환경)
anaconda 자체 가상화 환경을 사용하고, conda 자체 저장소(anaconda cloud)를 사용해 패키지를 가져옵니다. (conda config --add channels로 외부 저장소를 추가할 수도 있음) - 장점:
다양한 프로그래밍 언어의 패키지 및 종속성을 관리할 수 있습니다. (Python 외에 R, Ruby 등 사용가능)
프로젝트별 가상 환경을 지원하며, 서로 다른 종속성을 가진 프로젝트를 쉽게 관리할 수 있습니다. - 단점:
conda는 패키지 설치시 conda install 명령으로 설치해야 하지만 conda에서 지원하지 않는 패키지의 경우, pip와 함께 사용해야 할 수도 있어 관리가 복잡해집니다(의존성 충돌 발생 가능성 up).
일부 패키지는 conda에서 사용할 수 없을 수도 있고, 최신버전을 사용하지 못 할 수도 있습니다.
- 장점: