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
scipy、matplotlibなどは必要最小限- 本家
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)


コメント