以前対応したことのある表題のエラーの対処法を記憶の底から掬い上げたので、今後同じ状況で困らないように備忘録を書いておきます。
結論
pydanticのバージョンがv2になっていたのが原因でした。
対処についてはこちらが参考になります。
私の場合はコードを変えたくなかったので、以下のコマンドを実行してインストールするバージョンを固定して対応。
pip install "pydantic==1.*"
経緯
現象
git管理されているコードをいつもと違う環境にcloneして実行しようとしたら以下のエラーが発生
PydanticImportError: BaseSettings has been moved to the pydantic-settings package.
調査
こちらを見るとインポートするパッケージを変えると解決するような感じですが、諸事情によりコードを変更したくなかったので、他の方法を考えます。
スレッドを読んでいくと、こちらのコメントに以下のようなことが書かれていました。
- pydanticのv2で
Settings management
の機能はpydantic-settingsというパッケージ名に分割された - v2をインストールした状態でv1のスタイルを使いたい場合は
from pydantic.v1 import BaseSettings
と記載する
つまり、pydanticのv2がインストールされていることがエラーの原因ぽいので、v1をインストールすれば良いのでは?
というわけで、バージョン指定してインストールしたところ、うまくいきました。
実行したコマンド
pip install "pydantic==1.*"
pipenvを使用している人はpipenv install "pydantic==1.*"
最後に
実際はpipenv使っていており、Pipfile.lockにもちゃんとバージョン指定がされていたので、こんなことは起こらないと思うのですが、何故か発生しました。
この辺の深追いは時間があったらやります。
参考