Poetry設定の無効エラー:'group'プロパティ予期せず問題の解決法
問題の説明
Poetryを使用中に以下のエラーが発生する場合があります:
shell
RuntimeError
The Poetry configuration is invalid:
- Additional properties are not allowed ('group' was unexpected)
このエラーは主に以下の操作時に発生します:
poetry install
やpoetry update
などのコマンド実行時- Poetryプロジェクトの依存関係管理操作中
- チームメンバー間で環境を共有する場合
注意点
エラー発生時はPoetryコマンドが全て使用不能になります。直ちに環境の確認が必要です。
根本原因
このエラーの主な原因は以下の組み合わせです:
- プロジェクトがPoetry 1.2.0以降の新機能(依存グループ機能)を使用している
- ローカル環境の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
アップグレード後の復旧作業
- プロジェクトディレクトリに移動:bash
cd your-project-path
- ロックファイル再生成:bash
poetry lock --no-update
- 依存関係再インストール: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
から該当行を削除してください。
問題の予防策
- .python-versionファイルの活用:txt
poetry>=1.8.0
- プロジェクトごとのバージョン固定:bash
poetry self update 1.8.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 # 新規生成