Python の詩 - オプションの依存関係をインストールするにはどうすればいいですか? 質問する

Python の詩 - オプションの依存関係をインストールするにはどうすればいいですか? 質問する

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ファイル内のこのセクションを手動で管理する必要があります。

この追加の抽象化レイヤーの背後にある理由は、追加インストールは通常、caching1つまたは複数の依存関係(この場合は のみ)のインストールによって有効になるオプションの機能(この場合はredis)を参照するためです。poetry単に模倣しますsetuptools' 追加インストールの定義ここでは、それがなぜそれほど文書化されていないのかを説明しているのかもしれません。

おすすめ記事