파이썬 개발 시 가상 환경은 매우 중요합니다. 가상 환경을 사용하면 프로젝트마다 독립적인 파이썬 환경을 구성할 수 있으며, 각 프로젝트의 종속성을 격리하여 버전 충돌을 방지할 수 있습니다. CI/CD 파이프라인을 구축하는 경우, 각 단계에서 필요한 환경을 자동으로 구성할 수 있도록 파이썬 가상 환경을 통합해야 합니다.
이를 위해 Poetry를 사용하여 파이썬 가상 환경을 CI/CD 파이프라인에 통합할 수 있습니다. Poetry는 파이썬 패키지 관리자이자 의존성 관리 도구로, 가상 환경을 쉽게 구성하고 관리할 수 있도록 도와줍니다.
Poetry 설치
Poetry를 사용하기 위해서는 먼저 Poetry를 설치해야 합니다. 다음은 Poetry를 설치하는 명령어입니다.
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/1.1.6/get-poetry.py | python -
또는 Windows에서는 아래 명령어를 사용할 수 있습니다.
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/1.1.6/get-poetry.py -UseBasicParsing).Content | python -
Poetry를 설치한 후에는 poetry
명령어를 사용할 수 있게 됩니다.
Poetry를 통한 가상 환경 구성
Poetry를 사용하여 가상 환경을 구성하는 방법은 다음과 같습니다.
- 프로젝트 디렉토리로 이동합니다.
cd my_project
- Poetry로 가상 환경을 생성합니다.
poetry init
위 명령어를 실행하면 프로젝트의 종속성 및 환경 설정에 대한 정보를 입력할 수 있는 대화형 화면이 표시됩니다. 이때 필요한 정보를 입력하면 Poetry는 pyproject.toml
파일을 생성하여 프로젝트의 설정을 저장합니다.
- 종속성을 추가합니다.
poetry add 패키지이름
위 명령어를 사용하여 프로젝트에 종속성을 추가할 수 있습니다. Poetry는 pyproject.toml
파일을 업데이트하고 종속성을 설치합니다.
- 가상 환경을 활성화합니다.
poetry shell
위 명령어를 실행하면 Poetry로 생성한 가상 환경으로 전환됩니다. 이후 해당 환경에서는 프로젝트에 추가한 패키지를 사용할 수 있습니다.
CI/CD 파이프라인에 Poetry 통합하기
CI/CD 파이프라인에 Poetry를 통합하려면 다음 단계를 따르면 됩니다.
-
프로젝트에
.gitlab-ci.yml
또는.travis.yml
등의 CI/CD 설정 파일을 추가합니다. -
설정 파일에서 Poetry를 설치하고 가상 환경을 구성하는 단계를 추가합니다.
# .gitlab-ci.yml 파일 예시
image: python:3.8
before_script:
- curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/1.1.6/get-poetry.py | python -
- source $HOME/.poetry/env
- poetry install
stages:
- test
test:
stage: test
script:
- pytest
위 예시에서는 before_script
항목에서 Poetry를 설치하고 가상 환경을 구성한 후, test
단계에서 pytest를 실행하는 것을 볼 수 있습니다.
마무리
Poetry를 사용하여 파이썬 가상 환경을 CI/CD 파이프라인에 통합하면 각 단계에서 필요한 환경을 자동으로 구성할 수 있습니다. 이를 통해 프로젝트의 종속성을 관리하고 버전 충돌을 방지할 수 있으며, 효과적인 CI/CD 프로세스를 구축할 수 있습니다.
참고: Poetry 공식 문서