CS 공부/AI
파이썬 버전 관리
imsmile2000
2023. 4. 25. 17:09
버전과 버저닝
- 버전: 소프트웨어 제품의 특정 release에 대한 고유한 식별자, 지속적으로 개발, 릴리즈 하는 경우 필요
- 버저닝: 소프트웨어의 Unique한 버전 이름, 버전 번호를 할당하는 과정
버저닝 방법
- CalVer(Calender Versioning)
- 날짜 기반 시스템을 사용해 버전 번호를 할당 (연도와 월)
- 이해하기 쉬우며, 출시 시기를 예측하기 수월
- ex. Ubuntu 20.04
- SemVer(Semantic Versioning)
- 마침표로 구분된 주 번호, 부 번호, 패치 번호로 구성
- 이전 버전과 호환되지 않은 변경이 있는 경우 주 번호가 증가
- 이전 버전과 호환되며 새로운 기능이 추가되면 부 번호 증가
- 이전 버전의 버그 수정이 진행되면 패치 번호가 증가
- ex. Python 3(주).11(부).0(패치)
- HashVer(Hash Versioning)
- 해시 알고리즘을 사용해 버전에 대해 고유한 식별자 생성
- 코드가 변경될 때마다 해시가 변경되므로 모든 버전이 고유한 식별자 가짐
- ex. Git commit 7e6d3fd
파이썬 3.11 설치
- Docker로 파이썬 3.11.0 이미지 설치: docker pull python
- 패키지 관리자(brew,apt,winget)로 설치
- pyenv install 3.11.0, CLI로 설치 (추천)
가상환경
- venv: python -m venv "가상환경 폴더 경로", source "경로"/bin/activate
- conda
- pyenv-virtualenv
- pipenv
패키지 매니저
- 패키지를 설치하고, 버전을 관리하는 것
- 파이썬 패키지 매니저 : pip, poetry, conda
- pip의 문제점
- 개발 환경과 배포 환경의 패키지가 분리되지 않음
- pip list로는 패키지간 의존성을 알 수 없음
- pip uninstall 시 의존성이 있던 패키지들은 삭제되지 않음
- 즉, pip로는 정교하게 패키지 관리를 할 수 없음
- pip의 문제를 해결하기 위해 poetry가 등장
- 파이썬 프로젝트에 대한 버저닝을 파일 내에서 할 수 있음
- 개발, 운영 환경 구분하여 패키지 설치 가능
- 설치한 패키지와 간접적으로 설치된 패키지들간의 의존성 볼 수 있음
- 특정 패키지 삭제 시 의존성 패키지 삭제 가능