初めに
Qiitaのアドベントカレンダーを書くためにコードを書いていたら突然poetryがどのコマンドも実行できなくなってしまって非常に困ったのですが、いっそこのことを記事にしようと開き直って記事にしてみました。
普通のことをしていたらコマンド実行ができないようになったのではまる人もいるかもしれませんので心当たりがあれば参考にしてください。
いったい何をしてしまったのか
poetryのセルフアップデートをかけただけです!エラーの内容を見ても何がなにやらなのでもう一度やってみます
- 現時点では正しく動いていることを確認します
>poetry --version
Poetry (version 1.8.5)
- poetry self updateを実行します
>poetry self update
Updating Poetry version ...
Using version ^1.8.5 for poetry
Updating dependencies
Resolving dependencies... (6.8s)
Package operations: 0 installs, 22 updates, 0 removals
- Updating certifi (2024.2.2 -> 2024.12.14)
- Updating charset-normalizer (3.3.2 -> 3.4.0)
- Updating idna (3.7 -> 3.10)
- Updating more-itertools (10.2.0 -> 10.5.0)
- Updating urllib3 (2.2.1 -> 2.2.3)
- Updating zipp (3.19.1 -> 3.20.2)
- Updating distlib (0.3.8 -> 0.3.9)
- Updating filelock (3.14.0 -> 3.16.1)
- Updating importlib-metadata (7.1.0 -> 8.5.0)
- Updating importlib-resources (6.4.0 -> 6.4.5)
- Updating msgpack (1.0.8 -> 1.1.0)
- Updating packaging (24.0 -> 24.2)
- Updating platformdirs (4.2.2 -> 4.3.6)
- Updating pyproject-hooks (1.1.0 -> 1.2.0)
- Updating pywin32-ctypes (0.2.2 -> 0.2.3)
- Updating rapidfuzz (3.9.3 -> 3.9.7)
- Updating tomli (2.0.1 -> 2.2.1)
- Updating build (1.2.1 -> 1.2.2.post1)
- Updating cachecontrol (0.14.0 -> 0.14.1)
- Updating fastjsonschema (2.19.1 -> 2.21.1)
- Updating tomlkit (0.12.5 -> 0.13.2)
- Updating trove-classifiers (2024.5.22 -> 2024.10.21.16)
Writing lock file
- 壊れます
>poetry -version
CleoRuntimeError
The option "e" does not exist
at C:\Python38\lib\site-packages\cleo\io\inputs\argv_input.py:187 in _parse_short_option_set
183│ length = len(name)
184│ for i in range(length):
185│ shortcut = name[i]
186│ if not self._definition.has_shortcut(shortcut):
→ 187│ raise CleoRuntimeError(f'The option "{name[i]}" does not exist')
188│
189│ option = self._definition.option_for_shortcut(shortcut)
190│ if option.accepts_value():
191│ self._add_long_option(
何事が起ったかさっぱり分からないこともさることながら普通にpoetry のコマンドにも存在しているpoetry self updateを打っただけなのにぶっこわれてしまうのでそれが原因であるとは最初は分からず何か別の原因を考えてしまいますが、原因は結局これでした…
どうすれば直るのか
単刀直入に言うとあきらめて再インストールしましょう
>pip uninstall poetry
>pip install poetry
>poetry --version
Poetry (version 1.8.5)
終わりに
当たり前の作業をしたはずなのに壊れてしまうのは本気で何とかしてほしいなと思うもののなんやかんや便利なので使ってるpoetry。
出たばかりの頃のめんどくささから考えればかなり改善されてるので気長に修正されるのを待とうと思います。
参考