漢なら!! numpy や機械学習ライブラリを Windows の Maya 2018 で動かしたいですね!
やりましょう!
環境
- Windows 10 64bit
- Maya 2018u6
- python2.7
-
C:\Python27
に python2.7 環境をインストール済み - ユーザディレクトリにインストールする(管理者権限を使わない)
追加要件
Visual Studio 2017 あたりのインストール(or MSVC ランタイムのインストール)が必要になるかもしれません.
参考情報
[GUIDE] How to install numpy+scipy in Maya Windows 64 bit
https://forums.cgsociety.org/t/guide-how-to-install-numpy-scipy-in-maya-windows-64-bit/1715924
Maya & MotionBuilder向け numpy & scipy & scikit-learn環境構築
https://mukai-lab.org/library/mayanumpy/
Numpy 1.13.1 + Scipy 0.19.1 for Maya 2018
https://forums.autodesk.com/t5/maya-programming/numpy-1-13-1-scipy-0-19-1-for-maya-2018/td-p/7362541
Install
pip で入る numpy だとクラッシュするので(Cython あたりのパッケージが足りないだけかも?), mayapy でビルドしたほうが安全ですね.
ただビルドするのは面倒なので, ここでは, 上記
にある prebuilt package をありがたく使わせていただきましょう.
まず numpy wheel ファイルを落とします.
python の仕組み上, パスがどこかに通っていれば import できるはずなので, C:¥Program Files...
の Maya の python フォルダでは無く, ユーザフォルダにインストールすることにします.
C:\Users\syoyo\local\python2
にインストールするものとします.
pip で展開します(wheel 自体は zip ファイルっぽいので unzip でもいけるかも).
> cd C:\Users\syoyo\local\python2
> pip install -t . /path/to/numpy.whl
-t .
で pip の install 先を変えることができます.
あとは C:\Users\syoyo\local\python2
を Maya.env
あたりで PYTHONPATH
に追加します.
PYTHONPATH=C:\Users\syoyo\local\python2:%PYTHONPATH%
これで次回 Maya 2018 を起動すると, import numpy
で numpy が使えるようになります!
Happy numpy scripting!
機械学習は..?
残念ながら昨今の TensorFlow(r.13~ or 2.0)では, python 2.7 の prebuilt package は Windows にはありません. Pytorch にもありません.
基本的には機械学習ライブラリを Mayapy(python2.7) で使うのはあきらめましょう.
mayapy から numpy でデータを抽出し, 別の python3 環境で構築した tensorflow or pytorch などと RPC 通信するなどの手が考えられます.
Python3の標準モジュールで完結するRPC
https://qiita.com/nardtree/items/d7458eab839a6500a60a
multiprocessing, python2 でも動くはず...?
むりっぽそうなら JSON-RPC + http or websocket を考えてみましょう.
それでもなんとかしたい場合は...
この辺りから r1.10
の tensorflow を利用を考えてみましょう.
=> しかし numpy version 違いや, protobuf の問題などで動かないことがわかりました.
もしくは, plaidml(Keras 経由で利用)ですとまだまだ python2.7 で動くようです.
TODO
- ソースからビルドする.
- mayapy の pip で, 普通の numpy パッケージをインストールして利用できるか検証する
- 優秀な Maya + 機械学習若人さまが, 人類史上最速で優秀な Windows Maya + 機械学習若人さまへと昇華なされるスキームを確立する旅に出たい.