poetry - Python の依存関係の管理とパッケージ化が容易になりました。

(Python dependency management and packaging made easy.)

Created at: 2018-02-28 23:23:47
Language: Python
License: MIT

詩: Python の依存関係管理

テストのステータス 安定版 プレリリース版 ダウンロード 不和

Poetry は、Python プロジェクトの依存関係を宣言、管理、およびインストールするのに役立ち、どこでも適切なスタックを確保できます。

実行するには Python 3.7+ が必要です。

詩のインストール

ドキュメンテーション

完全なドキュメントは、公式 Web サイトで入手できます

インストール

インストール方法については、

poetry
こちらを参照してください。お使いの環境でタブ補完を有効にする方法については、こちらも参照してください。

序章

poetry
依存関係のインストール、および Python パッケージのビルドとパッケージ化を処理するツールです。そのすべてを行うために必要なファイルは 1 つだけです。それは、新しく標準化され
pyproject.toml
た .

言い換えれば、詩は、、、および

pyproject.toml
を置き換えるために使用します。
setup.py
requirements.txt
setup.cfg
MANIFEST.in
Pipfile

[tool.poetry]
name = "my-package"
version = "0.1.0"
description = "The description of the package"

license = "MIT"

authors = [
    "Sébastien Eustace <sebastien@eustace.io>"
]

readme = "README.md"

repository = "https://github.com/python-poetry/poetry"
homepage = "https://python-poetry.org"

keywords = ["packaging", "poetry"]

[tool.poetry.dependencies]
python = "^3.8"  # Compatible python versions must be declared here
aiohttp = "^3.8.1"
# Dependencies with extras
requests = { version = "^2.28", extras = ["security"] }
# Python specific dependencies with prereleases allowed
tomli = { version = "^2.0.1", python = "<3.11", allow-prereleases = true }
# Git dependencies
cleo = { git = "https://github.com/python-poetry/cleo.git", branch = "master" }

# Optional dependencies (extras)
pendulum = { version = "^2.1.2", optional = true }

# Dependency groups
[tool.poetry.group.dev.dependencies]
pytest = "^7.1.2"
pytest-cov = "^3.0"

[tool.poetry.group.docs.dependencies]
Sphinx = "^5.1.1"

[tool.poetry.scripts]
my-script = "my_package:main"

ここで注目できる点がいくつかあります。

  • バージョン命名のベスト プラクティスとしてセマンティック バージョニングを強制しようとします。
  • readme、含まれるファイル、および除外されるファイルを指定できます: no more
    MANIFEST.in
    .
    poetry
    また、VCS 無視ファイル (のような
    .gitignore
    ) を使用して
    exclude
    セクションに入力します。
  • キーワードを指定すると、パッケージ サイトでタグとして機能します。
  • 依存関係セクションは、キャレット、チルダ、ワイルドカード、不等式、および複数の要件をサポートしています。
  • パッケージが互換性のある Python バージョンを指定する必要があります。

poetry
また、virtualenv 内にいるかどうかを検出し、それに応じてパッケージをインストールします。そのため、
poetry
グローバルにインストールしてどこでも使用できます。

poetry
本格的な依存関係解決ライブラリも付属しています。

なんで?

Python でのパッケージング システムと依存関係管理はかなり複雑で、初心者には理解しにくいものです。経験豊富な開発者にとっても、Python プロジェクトで必要なすべてのファイル

setup.py
( 、
requirements.txt
setup.cfg
MANIFEST.in
および) を作成するのは面倒な場合があり
Pipfile
ます。

そこで、依存関係の管理、パッケージ化、公開など、すべてを 1 つの構成ファイルに制限するツールが必要でした。

composer
(PHP) や
cargo
(Rust)など、他の言語に存在するツールからインスピレーションを得ています。

そして最後に、私は

poetry
Conda .

資力