PythonモジュールをC++で(作りたい)

というか、多重ループ遅すぎてちょっと変わった大規模計算ができない。研究を進めようにも話にならない。というわけでモジュールをC/C++で書く方法を調べるものの、古い記事を漁ってもおそらくアップデートで色々変わってしまっている気がする。。。しかも、数値計算をする以上はnumpyのndarrayを扱えないと困るわけで・・・。Boost.PythonやらBoost.NumPyを使えば良さげだが、C+11用のpybind11を使った方がよいのか判断に迷う。基本はPython3.xを使っているわけで、はてさて・・・。

PythonならWin/Linux(Ubuntu)/Macでプラットフォームに依存せずに作業できると思ったが、C++python用のモジュールを作るとなるといやはや・・・。macだったら適当にbrew install でなんとかなりそうだが、Boost.NumPyはビルドせなあかんみたい。


と思ったが、Anacondaから簡単に入れらるっぽい。Boost 1.63 から Boost.NumPyも同梱されるようになったようだ。もう明日研究室のPC(Win)で試せばいいかな。。。 Mac Book Proにhomebrewでboost-python-1.65をインストールはしてみたが、1. Boost.NumPyは入っているのか? 2. Python2.x or 3.x どっち対応なのか?。


確認したところ、以下Python2.xと3.x用のインストール。二つインストールすると競合するかもだが、3.xしか使わないのでおk。Pyenvでエラー起きてた報告もあるし、余計なことはしない方針で。

 $ brew install boost-python 
 $ brew install boost-python --with-python3