Poetry
Poetry는 Python 프로젝트의 의존성 관리 및 패키지 관리를 위한 보다 현대적이고 강력한 도구입니다. pyproject.toml
파일을 사용하여 설정과 의존성을 관리합니다.
주요기능
장점:
강력한 의존성 해결: Poetry는
pyproject.toml
을 사용하여 의존성 해결과 관리에서 매우 효율적이고, 복잡한 의존성 충돌을 잘 해결합니다.- 이는 PEP 518 표준에 따라 Python 패키지의 구성을 정의하는 방법으로, 향후 여러 도구와의 호환성을 고려한 설정 방식입니다.
통합된 패키지 관리: 패키지 배포와 버전 관리를 한 번에 할 수 있습니다.
publish
명령어로 직접 PyPI에 패키지를 배포할 수 있어 편리합니다.자동화된 패키지 빌드: 프로젝트 빌드 과정에서 필요한 모든 파일과 의존성을 자동으로 생성하여 배포할 수 있습니다.
단점:
• 학습 곡선: Pipenv보다는 좀 더 많은 기능을 제공하지만, 그만큼 학습 곡선이 존재합니다.
• 호환성 문제: 일부 오래된 패키지나 라이브러리와의 호환성 문제를 겪을 수 있습니다.
설치방법
System requirements
- Python 3.9 이상
- Linux, macOS, Windows 지원
Installation
MacOS
1️⃣ poetry
가 설치 되어 있지 않은 경우, 설치 합니다.
brew install poetry
2️⃣ 프로젝트 생성 (pyproject.toml)
poetry는 패키지관리를 위한 pyproject.toml
생성 부터 시작합니다.
① poetry init
패키지 생성을 위한 기본 정보를 대화형 기반으로 pyproject.toml
파일을 만들 수 있습니다.
poetry init
Options
--name
: Name of the package.--description
: Description of the package.--author
: Author of the package.--python
Compatible Python versions.--dependency
: Package to require with a version constraint. Should be in formatfoo:1.0.0
.--dev-dependency
: Development requirements, see--dependency
.
② poetry new
Python 프로젝트에 적합한 디렉토리 구조를 만들어서 생성합니다.
poetry new <프로젝트 이름>
as follows:
my-package
├── pyproject.toml
├── README.md
├── my_package
│ └── __init__.py
└── tests
└── __init__.py
3️⃣ 패키지 관리
① 패키지 추가
poetry add <패키지명>
개발 의존성으로 패키지를 추가하고자 한다면, --dev
플래그 사용
poetry add --dev <패키지명>
② 패키지 삭제
poetry remove <패키지명>
③ 패키지 조회
poetry show
poetry show --tree # 의존성 트리
poetry show --latest # 최신 버전도 함께 표시
poetry show --outdated # 업데이트가 가능한 패키지의 목록 표시
poetry show --no-dev # 개발 의존성을 제외하고 표시
4️⃣ 가상환경 생성 및 활성화
poetry env activate
Poetry 2.0 업데이트에 따른 주요 변경사항
poetry export:
- Poetry 1.2 버전부터 poetry export 명령은 이제 기본 기능이 아니라 플러그인으로 제공됩니다.
- poetry export를 사용하려면 poetry-plugin-export 플러그인을 별도로 설치해야 합니다.
poetry shell:
- poetry shell 명령어도 더 이상 Poetry의 기본 명령어로 제공되지 않습니다.
- 새로운 명령어인
poetry env activate
를 사용하여 가상환경 활성화를 해야합니다. - poetry shell 명령어를 사용하고 싶다면, poetry-plugin-shell 플러그인을 설치하여 사용할 수 있습니다.
Reference
'Language > Python' 카테고리의 다른 글
(Python) Python Dotenv을 사용하여 환경 변수 관리하기 (0) | 2024.06.23 |
---|---|
(Python) Streamlit Docker로 실행하기 (0) | 2024.03.03 |
(Python) Streamlit 기본 (0) | 2024.03.03 |
PDF to Excel in Python (2) | 2024.01.28 |
Anaconda 가상환경 Window에서 Linux로 옮기기 (0) | 2022.06.12 |