build my life

poetry를 사용하여 가상환경 만들기 본문

Django

poetry를 사용하여 가상환경 만들기

dalovee 2023. 11. 2. 22:54
728x90

팀 프로젝트를 진행하는 중에 다른 팀 레포지토리를 구경하다가 poetry를 사용하는 것을 알게 되었다.

지금까지 프로젝트를 진행하면서 pip만 써왔는데 pip를 사용할 때 생기는 문제점들을 보완한 패키지 관리자가 poetry라고 한다.

특히, pip를 사용하면 프로젝트 폴더 내에 requirements.txt 파일을 관리해야하는데 poetry는 수동으로 작업하는 불편함을 덜어준다는 장점이 있다.

poetry란?

- python의 패키지 관리자/의존성 관리자

pip 문제점

1. 특정 패키지를 설치하고자 할때 해당 패키지 설치를 위해 여러 패키지 설치가 요구되는 경우가 있다. 이때 버전이 상충하는 경우가 발생한다.

2. 위에서 말했듯이 라이브러리 관리를 수동으로 진행해야한다. (requirements.txt)

3. pip는 항상 전역에 모든 패키지를 설치하기 때문에 프로젝트가 달라지면 해당 라이브러리 버전이 덮어 씌어져 버리는 문제가 발생 -> 이 문제는 가상환경 관리를 통해 분리할 수 있음

poetry 장점

1. pip 문제점이 보완되었다는 것이 큰 장점임

2. poetry.lock 파일을 생성

3. pyproject.toml 파일을 자동으로 생성 및 업데이트함 ( requirements.txt와 같은 역할 )

4. 가상환경 여부를 확인하고 기존 환경, 혹은 신규 생성 후 설치 등의 자동 관리를 지원(pip, virtualenv 역할을 혼자 다함)

1. install poetry(window) - PowerShell

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

2. 환경변수 설정(시스템 환경 변수 편집)

- 각자 경로에 맞게 설정

%APPDATA%\Python\Scripts

3. 가상환경 생성

poetry init

- pyproject.toml 파일이 생성됨

3. 라이브러리 설치 - django, drf 설치

poetry add django djangorestframework

 

 


[ 참고자료 ]

https://velog.io/@brown_eyed87/220918-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%8C%A8%ED%82%A4%EC%A7%80-%EA%B4%80%EB%A6%AC%ED%88%B4-poetry

 

220918_파이썬 패키지 관리툴 poetry

poetry란 무엇인가, 그리고 pip와의 비교

velog.io

https://velog.io/@brown_eyed87/220923Poetry-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0#span-stylebackground-color-e7f3f8django-%EC%8B%A4%EC%8A%B5-%EC%8B%9C-%EC%A7%84%ED%96%89-%EC%88%9C%EC%84%9Cspan

 

220923_Poetry 사용하기

Poetry 시작하기. 명령어 알아두기

velog.io

https://velog.io/@hj8853/Poetry%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

Poetry를 사용하여 가상환경 만들기

Poetry를 사용하기 위해 다음의 공식문서를 참고하여 학습한 내용을 정리 한 글입니다.Introduction | Documentation | Poetry - Python dependency management and packaging made easy.하나의 기술을

velog.io

 

728x90

'Django' 카테고리의 다른 글

[Django] Redis 적용  (0) 2023.11.08
[Django] PostgreSQL 연동 하기  (0) 2023.11.08
[DRF] Serializer 사용법  (0) 2023.07.21
[DRF] 직렬화란?  (0) 2023.07.21
[DRF] Serializer : dict-like  (0) 2023.07.21