概要
fastapiのバージョンをアップグレード後、テストを行ったら以下のエラーになりました。
ModuleNotFoundError: No module named 'httpx' while import TestClient
こちらの原因と解決方法を紹介します。
前提
TestClient
とは、FastAPIのエンドポイントをテストすることができるツールです。
今までhttpx
というモジュールをインポートせずとも利用できていました。
しかし、0.73.0
から0.112.1
にバージョンアップを行なった際に上述のエラーが出ました。
原因
原因は、0.87.0
からTestClient
はHTTPX
をベースにするように変更があったため、でした。
以下の通り、従来はrequests
をインポートしていればよかったのがhttpx
をインポートする必要が生じるようになりました。
Now the TestClient is based on HTTPX instead of Requests.
引用元:https://github.com/fastapi/fastapi/releases/tag/0.87.0
解決策
ということで、httpx
をインストールしてあげれば問題ないです。
pip install httpx
私はdockerコンテナでrequirements.txt
を利用してライブラリのバージョン指定でを一括インストールしていたので、以下のように追記しました。
httpx==0.27.2
これで問題なくテストを実行できるようになりました。
参考: