티스토리 뷰
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
혹은 이런 녀석도 있다: poetry-add-requirements.txt
+ 파이참에서도 지원을 해주는 것 같다 (아직 사용해보진 않음)
- Total
- Today
- Yesterday
- 다시미분적분
- Python
- 길벗출판사
- 동남아
- 개발자리뷰어
- askcompany
- 싱가폴여행
- 싱가포르
- 싱가폴
- 유데미강의
- udemy
- 아토믹코틀린
- Docker
- SRE를위한시스템설계와구축
- 나는리뷰어다
- 해외여행
- 파고다갓생후기챌린지
- 혼자공부하는얄팍한코딩지식
- django
- Singapore
- 머신러닝파워드애플리케이션
- 파고다강남후기
- 나는리뷰어다2022
- 리액트와함께장고시작하기
- 한빛미디어
- SQL기초구문
- 파고다후기
- 그래프QL인액션
- 한빛출판사
- BookDiscussion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |