Skip to content

Poetry設定の無効エラー:'group'プロパティ予期せず問題の解決法

問題の説明

Poetryを使用中に以下のエラーが発生する場合があります:

shell
RuntimeError

  The Poetry configuration is invalid:
    - Additional properties are not allowed ('group' was unexpected)

このエラーは主に以下の操作時に発生します:

  • poetry installpoetry updateなどのコマンド実行時
  • Poetryプロジェクトの依存関係管理操作中
  • チームメンバー間で環境を共有する場合

注意点

エラー発生時はPoetryコマンドが全て使用不能になります。直ちに環境の確認が必要です。

根本原因

このエラーの主な原因は以下の組み合わせです:

  1. プロジェクトがPoetry 1.2.0以降の新機能(依存グループ機能)を使用している
  2. ローカル環境のPoetryバージョンが古い(1.2.0未満)

pyproject.tomlで新しいグループ構文が使用されると(例):

toml
[tool.poetry.group.test]  # 新しい構文
optional = true

[tool.poetry.group.test.dependencies]
pytest = "^7.0"

古いPoetryはこのgroupセクションを認識できず、エラーが発生します。

解決方法(Poetryのアップグレード)

以下4つの方法から環境に適した手段を選択してください:

bash
# 現在のPoetryをアンインストール
rm -rf ~/.poetry

# 最新版をインストール
pip install --user --upgrade poetry

# バージョン確認
poetry --version  # 1.2.0以上を確認
bash
curl -sSL https://install.python-poetry.org | python3 -

# パスを通す(必要に応じて)
export PATH="$HOME/.local/bin:$PATH"
bash
# pipxのインストール(未導入の場合)
python3 -m pip install --user pipx
python3 -m pipx ensurepath

# Poetryインストール
pipx install poetry

# バージョン確認
poetry --version
bash
# システムのPoetryを完全削除
sudo apt remove --purge python3-poetry

# pipxで新規インストール
pipx install poetry

アップグレード後の復旧作業

  1. プロジェクトディレクトリに移動:
    bash
    cd your-project-path
  2. ロックファイル再生成:
    bash
    poetry lock --no-update
  3. 依存関係再インストール:
    bash
    poetry install --no-root

注意すべき追加ケース

仮想環境の影響

conda利用者の場合

condaのベース環境でPoetryを使っている場合、環境を切り替えて解決できるケースがあります:

bash
conda deactivate  # ベース環境から出る
poetry install    # 改めて実行

PIPXインストール時の挙動

pipxでインストールした場合、以下のエイリアス設定で永続化できます:

bash
# .bashrc/.zshrcに追記
export PATH="$HOME/.local/bin:$PATH"

構成ファイルの互換性問題

古い構成ファイルの取り扱い

プロジェクトにsecondary = trueのような廃止された設定があると別のエラーが発生します:

shell
data.source[0] must not contain {'secondary'} properties

この場合はpyproject.tomlから該当行を削除してください。

問題の予防策

  1. .python-versionファイルの活用
    txt
    poetry>=1.8.0
  2. プロジェクトごとのバージョン固定
    bash
    poetry self update 1.8.3  # 特定バージョンを固定
  3. チーム開発でのpyproject.toml共通設定:
    toml
    [build-system]
    requires = ["poetry-core>=1.2.0"]  # 最小バージョンを明記

バージョン確認フロー

トラブルシューティング

  • 権限エラー発生時sudoを使わずに--userフラグ付きでインストール
  • パスが見つからない場合export PATH=$PATH:$HOME/.local/binを実行
  • キャッシュ問題poetry cache clear --all .でキャッシュクリア

バージョンアップ後も問題が続く場合は、プロジェクト内のpoetry.lockファイルとpyproject.tomlの整合性を確認してください:

bash
rm poetry.lock  # ロックファイル削除
poetry lock     # 新規生成