Python の poetry 依存関係マネージャーでは、次のコマンドを使用してオプションの依存関係を指定できます。
$ poetry add --optional redis
結果的に次の構成になります。
[tool.poetry.dependencies]
python = "^3.8"
redis = {version="^3.4.1", optional=true}
しかし、実際にどのようにインストールするのでしょうか? ドキュメントには次のようにヒントが記載されているようです:
$ poetry install -E redis
しかし、それはエラーをスローするだけです:
Installing dependencies from lock file
[ValueError]
Extra [redis] is not specified.
ベストアンサー1
インストール中にフラグを使用する場合は、tool.poetry.extras
グループを追加する必要があります。pyproject.toml
-E
このセクションドキュメントの:
[tool.poetry.extras]
caching = ["redis"]
キーは で使用する単語を指しpoetry install -E
、値は追加されたときに としてマークされたパッケージのリストです--optional
。現在、サポートなしオプション パッケージを追加時に特定のグループの一部にするため、pyproject.toml
ファイル内のこのセクションを手動で管理する必要があります。
この追加の抽象化レイヤーの背後にある理由は、追加インストールは通常、caching
1つまたは複数の依存関係(この場合は のみ)のインストールによって有効になるオプションの機能(この場合はredis
)を参照するためです。poetry
単に模倣しますsetuptools
' 追加インストールの定義ここでは、それがなぜそれほど文書化されていないのかを説明しているのかもしれません。