NumPyの 「(X86_V2) but your machine doesn't support」への対応
事象
yfinanceの依存でNumPyが必要ぽかったので、requirements.txtに追加したところこのようなエラーが発生しました。
RuntimeError: NumPy was built with baseline optimizations:
(X86_V2) but your machine doesn't support:
(X86_V2).
先に対応方法
NumPyのバージョンを下げて対応します。
numpy<2.4
yfinance
ちなみに黒子(Claude Code)さんに修正してもらったときは、<2.1になっていました。
numpy<2.1
原因
メッセージにある通りで、実行している端末のCPUがX86_V2に未対応だったので、このエラーとなったようです。
古いPCで動かしてましたからね。(CPUはCore 2 Duo P8400)
NumPy 2.4.0のリリースノートにベースラインを引き上げたと記載がありました。
リリースは2025年12月20日だったようです。割とタイムリーな・・・

そもそもX86_V2ってなに
x86-64(AMD64)CPUの マイクロアーキテクチャ機能レベルを表す分類です。GCCなどのコンパイラやLinuxディストリビューションで、CPUがサポートする命令セットの世代を4段階に分けて定義しています。
| レベル | 主な追加命令 | 代表的なCPU |
|---|---|---|
| x86-64-v1 | 基本的なx86-64命令(SSE, SSE2) | Athlon 64, Pentium 4以降 |
| x86-64-v2 | SSE3, SSSE3, SSE4.1, SSE4.2, POPCNT | Core 第1世代(Nehalem)以降, 2008年頃〜 |
| x86-64-v3 | AVX, AVX2, BMI1/2, FMA | Core 第4世代(Haswell)以降, 2013年頃〜 |
| x86-64-v4 | AVX-512 | 一部のサーバー向けCPU |
NumPyのような数値計算ライブラリでは、SIMD命令(1つの命令で複数のデータを同時に処理する命令)を活用することで大幅な高速化が可能です。NumPy 2.4.0ではビルド時のベースラインがx86-64-v2に引き上げられたため、SSE4.2などに対応していないCPUでは動作しなくなりました。
今回のCore 2 Duo P8400は2008年製でSSE4.1までの対応なので、x86-64-v2の要件(SSE4.2, POPCNT)を満たせずエラーになったというわけですね。
最後に
さすがにPC古すぎか・・
古いThinkpadをおもちゃにしているのですが、この用途では無理がでてきそうです。
あとyfinanceって非公式APIを使っているんですね。
そもそもWebスクレイピングも禁止だったはずですし、J-Quants APIとかに乗り換えようと思います。