[부스트캠프 AI Tech 5기] 파이썬 버전 관리

박상우·2023년 4월 24일
0

부스트캠프

목록 보기
41/53
post-thumbnail

파이썬 버전 관리

버전 관리

버전

  • 소프트웨어 제품의 특정 릴리스에 대한 고유한 식별자
  • 소프트웨어가 처음 출시 되었을 때나 업데이트가 이루어질 때 마다 새로운 버전 번호를 부여함
  • 깃 커밋 해시도 버전에 해당

버저닝

  • 소프트웨어에 Unique한 버전 이름, 버전 번호를 할당하는 과정
  • 버전을 정의하는 방법

CalVer

  • 날짜 기반 버전 할당
  • 연도와 월로 구성
  • 이해하기 쉬움, 출시 시기 예측 수월, 유연한 접근 가능

SemVer

  • 마침표로 구분된 주 번호, 부 번호, 패치 번호로 구성
  • 이전 버전과 호환되지 않은 변경이 있는 경우 주 번호가 증가
  • 이전 버전과 호환되는 새로운 기능이 추가되면 부 번호 증가
  • 이전 버전의 버그 수정이 진행되면 패치 번호 증가

HashVer

  • SHA-1, SHA-256 해시 알고리즘을 사용해 버전에 대해 고유 식별자를 생성
  • 코드가 변경될 때마다 해시가 변경되므로, 모든 버전이 고유한 식별자를 가지도록 보장

어떤 버저닝 방법을 사용하는 것과 상관 없이 코드의 특정 상태를 적당히 표현하는 것이 핵심

Why Version?

  • 특정 상태에 대한 통일된 명칭이 없어 커뮤니케이션이 어려움

  • 릴리스에 대한 통일된 관점이 없어 커뮤니케이션이 어려움

  • 이 경우에도, 이전 예전 등의 추상적인 내용으로 혼란스러움

  • 버전은 결국 커뮤니케이션을 수월하게 해줌

  • 버전이 항상 필요한 것은 아니다

파이썬 버전 관리

  • SemVer를 사용해 버저닝


  • 파이썬 버전은 항상 명시
  • Github README.md에 작성

파이썬 3.11 설치하기

  • 파이썬 설치법은 매우 다양

파이썬 공식 홈페이지

  • 홈페이지에서 바이너리 파일을 다운 받아 설치

Conda

conda install python=3.11.0

Docker로 파이썬 이미지

  • Docker로 파이썬 3.11.0 이미지 설치
docker pull python:3.11.0
  • 파이썬 버전관리를 컨테이너 이미지로 진행
  • docker run -it python python으로 Docker 컨테이너 실행 및 접속

패키지 관리자

Mac OS
brew install python@3.11
Linux
apt install python3.11
Window
winget install Python3.11

Pyenv

  • 파이썬의 여러 버전을 CLI로 쉽게 설치할 수 있는 도구
pyenv install 3.11.0 
  • 어떤 방식이 파이썬 설치의 표준일까?
  • 파이썬 설치 시 여러 방법을 섞어쓰면 충돌이 날 가능성이 존재

  • 회사에서는 Pyenv 많이 사용 !

파이썬 프로젝트 버전 관리

가상 환경

  • 가상 환경이 없으면 어떤 문제가 있을까
  • 프로젝트를 하나만 할 때는 큰 이슈가 되지 않음
  • 프로젝트가 여러 개 생기면 라이브러리 끼리 충돌

venv

  • 여러가지가 있지만, 대표적인 가상 환경인 venv 소개
  • 파이썬 가상 환경 구축에 가장 많이 사용 됨
python -m venv .venv 
  • 보통 프로젝트 최상위 경로에서 .venv로 만드는 것이 관습
source .venv/bin/activate

패키지 매니저

  • pip, poetry, conda 등
pip
  • 파이썬 내장 패키지 매니저
  • pip install pandas
pip freeze > requirements.txt 
  • 다음 코드를 통해 설치한 패키지 목록 저장
pip install -r requirements.txt
  • 다음 코드를 통해 다른 컴퓨터에서 그대로 설치 가능
pip install --upgrade pip
  • 다음 코드로 pip를 업그레이드하고 사용하기를 권장
문제점
  • 개발 환경과 배포 환경의 패키지가 분리되지 않음
  • pip list로는 패키지간 의존성을 알 수 없음 (이거 왜 생겼지?)
  • pip uninstall로 의존성이 있던 패키지들은 삭제되지 않음
  • 즉 정교한 패키지 관리가 쉽지 않음
Poetry
  • pip 대체재
poetry init
  • 다음 명령어로 파이썬 프로젝트를 초기화
  • pyproject.toml이라는 파일이 생성 됨
  • 파이썬 프로젝트에 대한 메타 정보를 담고 있는 타입
poetry add -D
  • 다음과 같은 명령어로 패키지 설치
  • -D 인자로 개발환경에만 사용할 지 설정할 수 있음
  • pyproject.toml 에서 개발환경에 설치된 패키지와 그렇지 않은 것을 구분할 수 있음
  • pip의 문제점을 해결할 수 있음
profile
세상아 덤벼라

0개의 댓글