본문 바로가기
TIL - 프로그래밍/개념, 설정

파이썬 버전 관리 (venv, pip, poetry)

by chaemj97 2023. 4. 26.
728x90

1. 버전 관리

  • 버전(Version)
    • 소프트웨어 제품의 특정 리릴스에 대한 고유한 식별자
    • 소프트웨어가 처음 출시되었을 때나 업데이트가 이루어질 때마다 새로운 버전 번호 부여해야 한다.
  • 버저닝(Versioning)
    • 버전을 정의하는 방법
      1. CalVer (Calendar Versioning) : Ubuntu 20.04
      2. SemVer (Semantic Versioning) : Python 3.11.0
        • 이전 버전과 호환되지 않는 병경이 있는 경우 주 번호 증가
        • 이전 버전과 호환되며 새로운 기능이 추가되면 부 번호 증가
        • 이전 버전의 버그 수정이 진행되면 패치 번호가 증가
      3. HashVer (Hash Versioning) : Git commit 7e6d3se

2. 파이썬 프로젝트 버전 관리

가상 환경 venv

  • 가상 환경 만들기
    • python -m venv 가상환경이름
  • 가상 환경 실행
    • source 가상환경이름/Scripts/activate
  • 가상 환경 종료
    • deactivate
  • 가상 환경 패키지 목록 저장
    • pip freeze > requirements.txt
  • 가상 환경 패키지 설치
    • pip install -r requirements.txt

 

패키지 매니저 1 pip

  • 패키지를 설치하고 버전을 관리하는 것
  • 항상 최신 버전으로 업그레이드 후 사용하기 권장
    • pip install --upgrade pip
  • 설치
    • pip install 패키지명
  • 설치된 패키지 목록
    • pip list
    • 의존성 패키지 제외
      • pip list --not-required --format=freeze
  • pip 문제점
    • 개발 환경과 배포 환경의 패키지 분리 X
    • 패키지간 의존성 알 수 X
    • pip uninstall 시 의존성이 있던 패키지들은 삭제X

 

패키지 매니저 2 Poetry

  • 설치 (PowerShell)
    • (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
    • 환경 변수 Path 등록
      • C:\Users\CHAE\AppData\Roaming\pypoetry\venv\Scripts
  • 실행
    • 파이썬 프로젝트 초기화
      • poetry init or poetry new 프로젝트명
      • pyproject.toml 이라는 파일이 생성
        • 프로젝트 메타 정보를 담는 파일
        • 프로젝트에 대한 버전을 명시 가능
  • 패키지 설치
    • poetry add 패키지명
    • 뒤에 -D 옵션 붙이면 개발 환경에서만 사용할 패키지 설치
  • 패키지 목록
    • poetry show --tree
  • pip 문제점 해결
    • 개발 환경과 배포 환경의 패키지 분리 X -> 구분하여 패키지 설치 가능 (-D)
    • 패키지간 의존성 알 수 X -> 볼 수 O
    • pip uninstall 시 의존성이 있던 패키지들은 삭제X -> 삭제 O
728x90
반응형

댓글