1. Poetry 도입이유
2. Poetry 란
3. Poetry 설치 및 사용
4. Pycharm에서 Poetry 환경 구축
5. Docker 를 이용한 Poetry 개발 환경 세팅
6. Poetry 추가 옵션
👩💻 Poetry 도입 이유
회사 내에서 여러 프로젝트를 관리하다 보니 파이썬 라이브러리들의 버전때문에 문제가 생기는 경우가 꽤 있었다.
특히 tensorflow, keras, numpy 이 친구들..
또한, 테스트하려고 깔아놓은 라이브러리들 관리가 안되어 굳이 사용하지도 않는 라이브러리들도 같이 개발 및 운영환경에 올라가기 일쑤였다. 이러한 문제를 해결해줄 수 있는게 파이썬 신생 의존성 관리자 Poetry 였다. 실제로 써보니 좋은 점이 꽤 많았다.
🧐 Poetry 란
Poetry 는 Pipenv 와 비슷한 기능을 제공하는, pip 와 virtualenv 를 동시에 사용할 수 있게 해주는 패키지 관리자이자 의존성 관리자다.
pipenv 와 poetry 모두 사용성이 좋고 기존의 원시적인 의존성 관리를 벗어나게 해주어 둘 중 하나를 이용하면 좋을 것 같다.
예를 들어 requests 라는 라이브러리를 설치하면 다음과 같이 package에 대한 정보 및 하위에 어떤 package 에 의존(package.dependencies) 하고 있는 지를 보여준다.
📝 Poetry 설치 및 사용
참고: https://python-poetry.org/docs/
설치는 Mac 에서 진행하였다. 설치는 매우 간단하다.
curl -sSL https://install.python-poetry.org | python3 -
버전 확인
poetry -V
버전관리를 하고 싶은 프로젝트에서 poetry 생성
poetry init
다음과 같이 입력하면 pyproject.toml 이 생성된다.
package 를 추가하고 싶은 경우
poetry add {package name}
package 를 제거하고 싶은 경우
poetry remove {package name}
또한, 개발 환경에서 package 를 테스트해보고 사용해보고 싶을 경우 옵션을 주어서 따로 관리할 수 있다.
poetry add --group dev {package name} / poetry remove --group dev {package name}
이런식으로 분리되어서 관리되게 된다.
추후, dev 및 개발 환경은 제거하고 main 환경만 설치하고 싶은 경우에 이렇게 하면 된다.
poetry install --only main
📝 Pycharm에서 poetry 환경 구축
pycharm에서 python interpreter 에 poetry 가 추가되었다. 혹시나 없을 경우 plugin에서 설치하면 된다.
그 전에 poetry venv 환경이 현재 작업하고 있는 프로젝트에 적용되면 좋을 것 같았다.
poetry 사용 시 따로 가상환경 위치를 설정하지 않으면 다음의 위치로 들어가게 된다.
$HOME/Library/Caches/pypoetry/virtualenvs
poetry venv 환경을 현재 작업하고 있는 프로젝트에 위치시키려면 다음과 같이 입력하면 된다.
poetry config virtualenvs.in-project true
이후 poetry init 후 세팅 후 poetry add 를 통해 package 를 add 하면 .venv 폴더로 현재 프로젝트에 생성된다.
그 다음 pycharm에서 interpreter 설정을 .venv 폴더 내부에 python으로 하면 된다.
📝 Docker 를 이용한 Poetry 개발 환경 세팅
ENV POETRY_HOME="/opt/poetry"
ENV PATH="$POETRY_HOME/bin:$PATH"
RUN curl -sSL https://install.python-poetry.org | python3 -
RUN poetry config virtualenvs.create false
RUN poetry install --no-root
Docker 컨테이너는 독립된 환경이므로 딱히 virtualenv 환경을 사용할 이유가 없기 때문에 따로 virtualenv 환경은 만들지 않아야 한다.
RUN poetry config virtualenvs.create false
📝 Poetry 추가 옵션
이 옵션을 통해 설치한 package 에 대한 package 정보를 바로 확인할 수 있다.
poetry show {package name}
이 옵션을 통해 설치한 package 들에 대한 의존성을 tree 구조로 확인할 수 있다.
poetry show --tree
'Language > Python' 카테고리의 다른 글
[Python] csv 모듈을 이용하여 파일 읽고, 쓰기 | LIM (0) | 2023.05.10 |
---|---|
[Python] Ray 를 활용한 병렬처리 | LIM (0) | 2023.01.21 |
[Python] Staticmethod vs Classmethod | LIM (0) | 2022.12.16 |
[Python] 일급객체(First Class Object)란? | LIM (0) | 2022.12.11 |
[Python] Super() 기초 개념 및 활용 예제 | LIM (0) | 2022.11.08 |
댓글