エラー内容
FreeCADの勉強で1.0.2をインストールし、Gearワークベンチ(アドオン)を追加したところ以下のエラーメッセージが出て動作しない。
All ufuncs must have type `numpy.ufunc`. Received (<ufunc 'sph_legendre_p'>, <ufunc 'sph_legendre_p'>, <ufunc 'sph_legendre_p'>)
原因
Gearsが内部で呼んでいるnumpyモジュールの仕様変更があり不整合が起きているらしい。
FeeCADが内部で持っているpythonのライブラリを最新にアップデートしたら治るとのこと。(参照)
cd “C:\Program Files\FreeCAD 1.0\bin”
python.exe -m pip install –upgrade numpy scipy sympy
言われるがままに上記コマンドをコマンドプロンプトから管理者権限で実行した。その結果動作するようになった模様。(そもそも初めて使うので完全に正常な動作なのかの確認は取れていないが、ぱっと見動いている)
直接エラーの出たnumpy以外にも依存モジュールの scipy/sympyリンク先に書いてあったので一緒に更新
Freecadのpythonコンソールでの出力結果(最初の2行が入力)
import numpy, scipy,sympy
print(numpy.__version__, scipy.__version__,sympy.__version__)
2.3.4 1.16.3 1.14.0
正常動作時のバージョン
- FreeCAD 1.0.2
- freecad.gears workbench 1.3.0
- numpy 2.3.4
- scipy 1.16.3
- sympy 1.14.0
備考
gearワークベンチの依存モジュールにjupytorというものもあるが更新していない。もしかしたら同様に更新必要になるかも。(モジュールが何をするものなのかよくわかっていない)
FreeCADのpython配下にモジュールを直接入れたけれども使うアドオンによっては逆に古いバージョンでないと動かないとかもある模様。それぞれのアドオン用に起動環境を準備したほうがのちのち良いかもしれない。