概要
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
これで問題なくテストを実行できるようになりました。
参考: