티스토리 뷰

 poetry의 존재는 노마드코더의 장고 강의를 보다가 알게 되었다. (강의...그만 사야지....풀스택장고를 몇개째 사는거야)

 사실 poetry보다는 virtualenv를 사용하고 있는터라 비교해보기는 어렵지만 일단 라이브러리등을 설치할때 버전을 명시하지 않으면 그냥 최신껄 설치해주는게 아니라 의존성을 확인해서 적절한 버전으로 설치해주는 점이 마음에 든다.

 다만 아직 시작단계라 그런건지 컨트리뷰터가 적어선진 모르겠는데 완전 최신 파이썬에선 종종 지원해주지 않는 경우가 있는 것 같다.나도 겪었다

 

설치방법

 공식링크 상에서 친절하게 다양한 방법을 알려주고 있다.

 나의 경우엔 mac os를 사용하고 있기 때문에 아래의 명령어를 사용했다.

curl -sSL https://install.python-poetry.org | python3 -

사용 방법

poetry는 터미널상에서 탭을 사용한 자동완성을 지원하고 있다. 명령어 poetry help completions를 사용해서 자세한 사항을 확인할 수 있다.

나는 zsh를 사용하고 있으므로 아래의 명령어를 통해 자동완성을 사용할 수 있다.

poetry completions zsh > ~/.zfunc/_poetry

 그럼 이제 poetry를 적용해보자. 만약 새 프로젝트를 사용하는 경우엔 poetry new {project_name} 을 해주면, project_name 디렉토리를 만들어준다. 하지만 나의 경우엔 이미 존재하는 프로젝트에 적용해줄 것이므로 다음의 명령어를 사용한다.

poetry init

 이 명령어를 실행하면 pyproject.toml이라는 파일이 생성되는데 이건 해당 프로젝트의 환경에 대한 description이라고 할 수 있다. npm의 package.json과 유사한 것이 아닐까 싶다.

새로운 디펜던시를 추가할려면 해당 toml 파일에서 아래와 같이 추가할 수 있다.

[tool.poetry.dependencies]
pendulum = "^2.1"

혹은 그냥 아래와 같이 명령어로 추가할 수도 있다. 아래와 같이 쓰면 poetry가 알아서 적절한 버전의 디펜던시를 추가해준다.

poetry add pendulum

해당 가상환경내로 들어갈려면 아래의 명령어를 사용한다. (virtualenv로 치면 virtualenv activate랑 비슷한 기능인 것 같다.)

poetry shell

나가고싶으면 exit 이라고 써주면 된다. deactivate와 비슷한 기능이다.

 

ETC

 toml파일이 있긴 하지만? 이미 작성된 프로젝트의 requirements의 패키지를 일일이 쳐주고 싶진 않은데…requirements와 같이 편하게 쓰는 방법은 없을까? 하는 생각에 찾아봤고 역시나 스택오버플로우에 있었다

cat requirements.txt | xargs poetry add

해당 답변 스택 오버플로우 링크: https://stackoverflow.com/questions/62764148/how-to-import-requirements-txt-from-an-existing-project-using-poetry

 

How to import requirements.txt from an existing project using Poetry

I am trying out Poetry in an existing project. It used pyenv and virtual env originally so I have a requirements.txt file with the project's dependencies. I want to import the requirements.txt file...

stackoverflow.com

혹은 이런 녀석도 있다: poetry-add-requirements.txt

 

GitHub - tddschn/poetry-add-requirements.txt: Add dependencies specified in requirements.txt file(s) to your Poetry project

Add dependencies specified in requirements.txt file(s) to your Poetry project - GitHub - tddschn/poetry-add-requirements.txt: Add dependencies specified in requirements.txt file(s) to your Poetry p...

github.com

+ 파이참에서도 지원을 해주는 것 같다 (아직 사용해보진 않음)

반응형
댓글