🐥

【2025最新】Poetry v2.0.0での変更点

2025/01/06に公開

2025/1/5の Poetry v2.0.0リリースに伴い、いくつかの変更が導入されました。pyproject.tomlの記述方法の変更や、一部コマンドのプラグイン化などが挙げられます。以下に、特に重要と思われる変更点をまとめました。

pyproject.tomlの記述方法の変更

PEP 621に準拠した[project]セクションのサポートが追加されました。これにより、従来の[tool.poetry]セクションからの移行が推奨されています。

旧形式

[tool.poetry]
name = "example-project"
version = "0.1.0"
description = "An example project"
authors = ["Your Name <your.email@example.com>"]

新形式

[project]
name = "example-project"
version = "0.1.0"
description = "An example project"
authors = [
    { name = "Your Name", email = "your.email@example.com" }
]

package-modeオプションの必須化

プロジェクトと同じ名前のディレクトリの中に__init__.py ファイルとソースコードがある状態ではない時に、
package-modeオプションの設定が必須となりました。(前verまでは警告だったが、v2.0.0からはエラー)

[tool.poetry]
package-mode = false

を記述することでエラーを防げる。

dev-dependenciesの非推奨化

group.dev.dependenciesが推奨となった

poetry add pytest --group dev
[tool.poetry.group.dev.dependencies]
pytest = "^6.2"

一部コマンドのプラグイン化

Poetry v2.0.0では、一部のコマンドが poetry-core から分離され、プラグインとして提供されるようになりました。これにより、これらのコマンドを使用する際には、対応するプラグインのインストールが必要となりました。

poetry shell

poetry-plugin-shellプラグインのインストールが必要。

poetry self add poetry-plugin-shell

代わりとして、poetry-coreに

poetry env activate

が追加された。

poetry export

poetry-plugin-exportプラグインのインストールが必要。

poetry self add poetry-plugin-export

一部コマンドの非推奨化・置き換え

poetry install --syncの非推奨化

poetry sync

が推奨となった。

virtualenvs.prefer-active-pythonの廃止

代わりとして、

poetry config virtualenvs.use-poetry-python true

に置き換え

参考

Discussion