"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Django 프로젝트에서 Poetry를 사용하는 방법

Django 프로젝트에서 Poetry를 사용하는 방법

2024-11-01에 게시됨
검색:672

먼저 컴퓨터에 시를 설치해야 합니다. 이를 수행하는 방법은 여러 가지가 있는데, 저는 Brew(Brew Install Poetry)를 사용하여 다운로드했습니다. 포에트리 자체 사이트에서 적절한 방법으로 다운로드 받으실 수 있습니다.

하지만 먼저 시가 무엇인지, virtualenv와 어떻게 다른지 간단히 살펴보겠습니다.

Poetry는 Python 프로젝트 및 종속성을 관리하기 위한 도구로, 패키지 관리 및 프로젝트 구조를 보다 쉽게 ​​처리할 수 있습니다. 이를 통해 개발자는 종속성을 정의 및 관리하고, 가상 환경을 생성하고, 프로젝트 버전 관리를 모두 간단한 방식으로 처리할 수 있습니다.

venv와의 차이점:

  • VirtualEnv: venv는 종속성이 전역 환경과 별도로 설치되는 격리된 가상 환경을 만들기 위한 표준 Python 모듈입니다. 그러나 venv는 프로젝트 종속성을 자체적으로 관리하지 않습니다. 종속성을 설치하고 수동으로 추적하려면 일반적으로 pip와 같은 것을 사용해야 합니다.

  • : 반면에 시는 가상 환경을 생성할 뿐만 아니라 종속성 관리도 자동화합니다. pyproject.toml 파일을 사용하여 종속성, 버전 및 프로젝트 구성을 추적합니다. Poetry는 또한 버전 관리 및 패키징을 처리하여 Python 패키지 게시를 단순화합니다.

요약하자면 venv가 격리된 환경을 만드는 반면 Poetry는 종속성 해결 및 패키징 도구를 포함하여 보다 포괄적인 프로젝트 관리 솔루션을 제공합니다.

Poetry를 설치한 후 Django 프로젝트를 생성해 보겠습니다.

thehormat@Pawn Desktop % mdkir DjangoPoetry
thehormat@Pawn DjangoPoetry % cd DjangoPoetry 
thehormat@Pawn DjangoPoetry % poetry init

This command will guide you through creating your pyproject.toml config.

Package name [djangopoetry]:  DjangoPoetry 
Version [0.1.0]:  
Description []:  We learn Poetry
Author [HormatHamidov , n to skip]:  TheHormat
License []:  
Compatible Python versions [^3.12]:  

Would you like to define your main dependencies interactively? (yes/no) [yes] no
Would you like to define your development dependencies interactively? (yes/no) [yes] no 
Generated file

[tool.poetry]
name = "djangopoetry"
version = "0.1.0"
description = "We learn Poetry"
authors = ["TheHormat"]
readme = "README.md"

[tool.poetry.dependencies]
python = "^3.12"


[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"


Do you confirm generation? (yes/no) [yes]  

그러면 다음과 같은 파일이 생성됩니다:
How to use Poetry in Django project

좋습니다. 이제 계속 진행하겠습니다. 프로젝트에 Django를 추가해야 합니다. 하지만 그 전에 virtualenv 로직처럼 먼저 시를 활성화해야 합니다:

thehormat@Pawn DjangoPoetry % poetry shell
Creating virtualenv djangopoetry-5djS955q-py3.12 in /Users/thehormat/Library/Caches/pypoetry/virtualenvs
Spawning shell within /Users/thehormat/Library/Caches/pypoetry/virtualenvs/djangopoetry-5djS955q-py3.12
thehormat@Pawn DjangoPoetry % emulate bash -c '. /Users/thehormat/Library/Caches/pypoetry/virtualenvs/djangopoetry-5djS955q-py3.12/bin/activate'
(djangopoetry-py3.12) thehormat@Pawn DjangoPoetry % 

(djangopoetry-py3.12) thehormat@Pawn DjangoPoetry %

⬆️ 단말기에 이 결과가 보이면 시가 활성화된 상태입니다.

그런 다음 프로젝트에 Django를 추가해 보겠습니다.

(djangopoetry-py3.12) hormathamidov@Pawn DjangoPoetry % poetry add django
Using version ^5.1.2 for django

Updating dependencies
Resolving dependencies... (0.3s)

Package operations: 3 installs, 0 updates, 0 removals

  - Installing asgiref (3.8.1)
  - Installing sqlparse (0.5.1)
  - Installing django (5.1.2)

Writing lock file

우리는 toml 파일에서 이러한 참신함을 보게 될 것입니다. 이는 django를 성공적으로 설정했음을 의미합니다.

[tool.poetry.dependencies]
python = "^3.12"
django = "^5.1.2"

이제 마지막으로 일반적인 방법으로 django를 설치하고 실행할 수 있습니다.

(djangopoetry-py3.12) thehormat@Pawn DjangoPoetry % django-admin startproject core .
(djangopoetry-py3.12) thehormat@Pawn DjangoPoetry % python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 14, 2024 - 18:22:05
Django version 5.1.2, using settings 'core.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

놀라운 결과는 다음과 같습니다.
How to use Poetry in Django project

Poetry에 조금이나마 도움을 드리고 싶었고, 자세한 내용은 Poetry의 자체 문서를 통해 확인하실 수 있습니다.

결론

? 당황하지 않으셔도 쉽게 찾아보실 수 있고, 자세히 검색하신 후 수정하실 수 있습니다.

?️ 떠나기 전에… 질문/제안/의견이 있으시면 아래에 한 줄 남겨주세요.

즐거우셨다면 멋진 이모티콘(?❤️‍?)으로 기분을 알려주시고, 향후 업데이트를 위해 팔로우하는 것도 잊지 마세요.

제가 한 말입니다. 곧 얘기하겠습니다!

— TheHormat ♟️

릴리스 선언문 이 기사는 https://dev.to/thehormat/how- to-use-poetry-in-django-project-43n1?1에서 재현됩니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3