柴田 望洋 SBクリエイティブ 2014-08-09
目次
- 目次
- はじめに
- pybind11とは?
- シンプルなサンプルコードの実行方法
- 1. pybind11をDL
- 2. c++のコードを書く
- 3. pybind11のバインドc++コードを書く。
- 4. C++コードをコンパイルする。
- 5. pythonコードで読み込ませる
- デフォルト引数
- C++コードの変数をpython側で利用する
- C++クラスのバインディング
- 継承
- 関数のオーバーロード
- Enum
- STLのコンテナのやり取り
- pybind11がサポートしているコンパイラ
- サンプルコード
- より詳しいPythonとCコードの連携方法を学びたい人は
- 参考資料
- MyEnigma Supporters
はじめに
Python Advent Calendar 2016の17日目の記事です。
何かのシステムを作る時に、
はじめはPythonでプロトタイプを作り、
pandasで入力データを流し込みつつ、
matplotlibで結果を確認しながら、
システムを作ることが多いです。
その後、そのシステムのより最適化するために、
C++に移植したりすることがあるのですが、
システムをいきなりPythonからC++に移植するのではなく、
システムの一部をC++に移植して、
残りのPythonシステムはそのままで実行したい時があります。
これにより、元のシステムからの移植の際に
バグが混入していないかが、確認しやすくなったり、
どの部分をC++に変えることで計算が早くなるのかが
わかりやすくなります。
そこで今回は
C++11のコードをPythonから利用できるようにする
pybind11というツールの概要と、
いくつかのサンプルを紹介したいと思います。
続きを読む