새소식

SCIENCE OF DATA ANALYSIS/데이터 분석을 위한 CS

[파이썬 훈련] #007 Python 가상환경 Poetry 환경 이전 및 버전설정

  • -

안녕하세요 데잇입니다. Poetry 가상환경을 설정하는 방법은 지난 시간에 이미 다루었습니다.

가상환경을 설정하는 이유는 크게 다음과 같습니다.

  1. 프로젝트 격리: Poetry 가상환경을 사용하면 프로젝트별로 격리된 환경을 생성할 수 있으며, 이는 프로젝트 간에 종속성 충돌을 방지하고 프로젝트 간에 독립적으로 패키지를 관리할 수 있게 합니다.
  2. 패키지 버전 관리: Poetry 가상환경은 poetry.lock 파일을 통해 사용 중인 패키지의 정확한 버전을 고정하므로, 프로젝트의 일관성을 유지하고 다른 환경에서 동일한 종속성을 재현하는 데 도움을 줍니다.
  3. 종속성 설치 및 업데이트: Poetry 가상환경을 사용하면 poetry install 명령어를 통해 종속성을 쉽게 설치하고 관리할 수 있으며, 이를 통해 필요한 패키지를 효율적으로 업데이트할 수 있습니다.

사실, 이러한 장점을 실천하기 위해서는 단순히 POETRY 환경을 설정하는 것이 아니라 이전하는 작업이 필수적입니다. 이번 시간에는 POETRY 환경이전에 대해 살펴봅니다.

프로세스

1.  Poetry 환경생성

poetry init                    # pyproject.toml 파일을 생성
poetry shell                # Poetry 프로젝트 내에서 Poetry의 가상환경을 활성화 / exit을 통해 벗어날 수 있음
poetry add [라이브러리]          # 필요한 라이브러리들 저장
poetry install                # poetry.lock 파일 생성
  • pyproject.toml
    • 프로젝트의 메타데이터와 종속성 정보 저장(python: ^3.9 등)
    • poetry init에 의해 생성 및 개발자가 직접 편집
  • poetry.lock
    • 종속성을 포함한 실제 패키지 버전 및 패키지 간 의존성 고정
    • poetry install에 의해 생성 및 poetry가 종속성을 자동으로 관리하고 업데이트 수행

2.  Poetry 환경이전

  • 해당 폴더로 이동 후 pyproject.tomlpoetry.lock 파일 복사/붙여넣기(혹은 git repo에 저장)
  • 해당 폴더에서 poetry install 수행
    • poetry init은 불필요(∵ pypeoject.toml이 이미 존재)

기타

pyproject.toml의 버전 지정방법

  • 버전 정의 문법: Semantic Versioning (SemVer) 표기법
  • 버전 정의 형식: MAJOR.MINOR.PATCH.
    • MAJOR (주 버전): 이 숫자는 호환되지 않는 변경사항이 있을 때 증가합니다. 주로 API 변경, 하위 시스템 변경 등과 관련됩니다.
    • MINOR (부 버전): 이 숫자는 하위 호환적인 새로운 기능이 추가될 때 증가합니다. 기존 기능의 확장 및 추가 기능과 관련됩니다.
    • PATCH (수정 버전): 이 숫자는 하위 호환적인 버그 수정이나 패치가 적용될 때 증가합니다.
  • 버전 정의 구문
    1. Exact version (정확한 버전): 1.2.3와 같이 정확한 버전을 지정합니다. 이 경우 해당 버전과만 호환됩니다.
      • 예제: requests = "2.25.1" - 정확한 버전 2.25.1과 호환
    2. Wildcard matching (와일드카드 일치): *를 사용하여 모든 버전과 호환됩니다.
      • 예제: numpy = "*" - 모든 버전과 호환
    3. Tilde range (틸데 범위): ~를 사용하여 마이너 버전까지 일치하는 범위를 지정합니다. 
      • 예제: Django = "~2.2" - 2.2.0부터 2.3.0 미만의 버전과 호환
    4. Caret range (캐럿 범위): ^를 사용하여 마이너 버전과 패치 버전을 업데이트할 수 있는 범위를 지정합니다. 
      • 예제: Flask = "^1.1.2" - 1.1.2부터 2.0.0 미만의 버전과 호환
    5. Hyphen range (하이픈 범위): -를 사용하여 두 버전 사이의 범위를 지정합니다. 
      • 예제: Pandas = "1.0 - 1.3" - 1.0.0부터 1.3.0까지의 버전과 호환
Contents

소중한 공감 감사합니다

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 댓글/공감 꾸욱!