chumpyの環境構築方法まとめ|Python 3.11 + NumPy 1.26系で安定させるポイント

2026年時点では Python 3.11 + NumPy 1.26 系が扱いやすい。ただし本家 chumpy には注意

骨格推定や 3D 人体復元まわりの古い実装を触っていると、いまでも依存関係として chumpy が出てきます。GitHub の公式リポジトリでも、chumpy は Python ベースの自動微分フレームワークとして説明されています。(出典: GitHub – mattloper/chumpy

ただし、2026年時点で本家 chumpy をそのまま新しめの Python 環境へ入れるのは、かなりハマりやすいです。特に有名なのが AttributeError: module 'inspect' has no attribute 'getargspec' というエラーで、これは Python 3.11 で inspect.getargspec() が削除されたこと と関係しています。Python 公式も、Python 3.11 での削除を明記しています。(出典: Python Documentation – What’s New In Python 3.11

実際に chumpy の GitHub issue でも、Python 3.11 環境で inspect.getargspec 由来のエラーが報告されています。さらに別 issue では、setup.py が pip を import する実装のため、PEP 517 ベースのインストールで失敗しやすいことも指摘されています。(出典: GitHub – mattloper/chumpy issue #51 / GitHub – mattloper/chumpy issue #56

結論:本家ではなく互換 fork 前提で考える

そのため、いま chumpy 系の環境を作るなら、本家 chumpy 0.70 をそのまま入れるより、互換 fork を使って Python 3.11 + NumPy 1.26 系で揃えるほうが現実的です。

実際、PyPI には chumpy-fork が公開されており、説明文では latest python, pip and numpy support を掲げています。また、chumpy-fix は numpy<=2 に対応した drop-in replacement として公開されています。(出典: PyPI – chumpy-fork / PyPI – chumpy-fix

なぜ Python 3.11 + NumPy 1.26 を勧めるのか

まず Python 側ですが、ここで言う 「Python 3.11 が扱いやすい」というのは、本家 chumpy が 3.11 で安定するという意味ではありません。正確には、Python 3.11 を使うなら、本家ではなく fork を使う前提で現実的という意味です。Python 3.11 では inspect.getargspec() が削除されているため、本家の古い実装はそのままだと壊れやすいです。(出典: Python Documentation – What’s New In Python 3.11 / GitHub – mattloper/chumpy issue #51

NumPy 側は、骨格推定まわりの古い研究コード全体を見ると、まだ NumPy 2 系で別の依存関係が壊れることがあります。chumpy-fix 自体は numpy<=2 対応を掲げていますが、周辺コードまで含めて保守的に組むなら NumPy 1.26.4 前後で固定するのが無難です。実際、NumPy 2.0 で周辺プロジェクトが壊れ、1.26.4 へのダウングレードで解決した報告も見られます。(出典: PyPI – chumpy-fix / GitHub – DeepLabCut issue #2624

2026年時点で chumpy 系の骨格推定環境を組むなら、Python 3.11 + NumPy 1.26 系が扱いやすい。ただし安定運用の前提は、本家 chumpy ではなく互換 fork を使うことだ。

いちばん無難な構成

  • Python 3.11
  • NumPy 1.26.4
  • scipymatplotlib などは必要最小限
  • 本家 chumpy ではなく chumpy-fork または chumpy-fix

この構成にする理由は、新しすぎる Python / NumPy を避けつつ、fork 側の互換性改善を取り込める からです。(出典: PyPI – chumpy-fork

環境構築手順

1. 仮想環境を作る

python3.11 -m venv .venv
source .venv/bin/activate

Windows の場合は次の形です。

python -3.11 -m venv .venv
.venv\Scripts\activate

2. pip 周りを更新する

python -m pip install --upgrade pip setuptools wheel

本家 chumpy には build 周りの問題報告があるため、まず土台を更新しておくほうが安全です。ただし、これは本家の根本問題を解決するものではなく、fork を使う前提での下準備です。(出典: GitHub – mattloper/chumpy issue #56

3. NumPy を 1.26 系で固定する

pip install numpy==1.26.4

chumpy を含む古い研究コードでは、ここを先に固定しておくと事故が減ります。(出典: PyPI – chumpy-fix

4. chumpy-fork を入れる

pip install chumpy-fork

まず試すならこちらです。PyPI でも latest python, pip and numpy support と案内されています。(出典: PyPI – chumpy-fork

もし対象プロジェクト側が import chumpy 前提で、drop-in replacement を試したい場合は次も候補になります。

pip install chumpy-fix

chumpy-fix は drop-in replacement for chumpy と案内されています。(出典: PyPI – chumpy-fix

5. import を確認する

python -c "import chumpy; print(chumpy.__file__)"

ここで import が通れば、最低限の導入は成功です。

よくあるエラー

AttributeError: module 'inspect' has no attribute 'getargspec'

これは Python 3.11 以降 で古い chumpy を読み込んだときの典型例です。原因は、chumpy 側が inspect.getargspec() を使っているのに対し、Python 3.11 でその API が削除されたためです。(出典: Python Documentation – What’s New In Python 3.11 / GitHub – mattloper/chumpy issue #51

ModuleNotFoundError: No module named 'pip'

これは本家 chumpy の setup.py が install 時に pip を import しようとして失敗するパターンです。PEP 517 ベースのビルドで問題化しやすく、issue でも報告されています。(出典: GitHub – mattloper/chumpy issue #56

NumPy 2 系で周辺コードが壊れる

これは chumpy 単体というより、骨格推定周辺の古い依存関係全体で起きやすい問題です。そのため、記事タイトルで 「Python 3.11 + NumPy 1.26 が安定しやすい」 と書くのは実務上かなり妥当です。ただし本文では、本家ではなく fork 利用前提 と補足したほうが正確です。(出典: PyPI – chumpy-fix

まとめ

chumpy は骨格推定や 3D 人体復元の古いコードでいまも登場する一方、2026年の標準的な Python 環境では、そのままだとかなり扱いにくいライブラリです。とくに inspect.getargspec() は Python 3.11 で削除されており、本家 chumpy ではこれが原因で壊れる報告があります。さらに install 時の build 問題もあり、README どおりに入れて終わるとは限りません。(出典: Python Documentation – What’s New In Python 3.11 / GitHub – mattloper/chumpy issue #56

これから環境を組むなら、現実的な落としどころは Python 3.11 + NumPy 1.26.4 をベースにして、chumpy-fork か chumpy-fix を使う構成 です。これなら新しすぎる依存関係を避けつつ、互換性改善も取り込めます。(出典: PyPI – chumpy-fork / PyPI – chumpy-fix

参考リンク

コメント

タイトルとURLをコピーしました