anthropic SDK が httpx をやめました。移行しても動くので気づけません
Anthropic の Python SDK が 1.0.0 になった。同時に、HTTP通信層をhttpxからhttpx2に切り替えた。こう聞くと「また破壊的変更か」と身構えるが、実態はもっと厄介だ。書き直しは1行で済む。import httpx を import httpx2 as httpx に変えるだけだ。Timeout、HTTPTransport の呼び出しはそのまま。API互換性が保証されている。ここまでなら「良い移行」だ。
だが地獄は環境遷移の瞬間に現れる。SDK 1.0.0 に上げた直後、古いコードが動いてしまう。なぜか。旧バージョンで使っていた httpx が、開発環境に残骸として残っているからだ。新しい httpx2 と古い httpx の両方がインストールされ、import httpx は古い方に通る。つまり「動いている」。CI パイプライン、Docker イメージ、クリーンな venv を作った瞬間。httpx は入らず、ModuleNotFoundError で落ちる。手元では動く。本番では爆発。こういった状態を「動いているのに壊れている」と呼ぶ。
httpx 自体についても「保守終了」と言われているが、実態は「安定版の更新が 2024 年 12 月で止まった」だけで、開発版は 2 月も出ている。つまり「死んでいない」。Pydantic が fork を引き継ぎ、httpx2 として API 互換を保ち続ける契約がある。中小企業が自社で Python AI ツールをメンテするなら、pip show httpx で Required-by が空かどうか見ておく価値がある。空なら消してもいい。埋まっていたら、そのパッケージの update 待ちになる。いずれにせよ、アップグレードの直後は必ずクリーンな環境で動作確認する。手元だけで判断しない。
※ 上記は配信元記事をもとにAIの鬼編集部が要約・再構成したものです。正確な内容は出典元をご確認ください。
このニュースの全文は、配信元でお読みいただけます。 Qiita AIで元記事を読む →


