hatappi.blogスマートフォン用の表示で見るhatappi.blog2017-08-08C++のコードをPythonで呼ぶgithub.comC++11のコードをPythonから利用できるようにするためのアプローチの1つに上のpybind11を使用する方法があるらしい。今回はそれを実際に動かしてみる。pybind11とはC++のコードをPythonから利用できるようにするためのヘッダーライブラリ。ヘッダーのみとなっているので使用する際のコンパイルとかは必要はないです。pybind11のdocでも触れられてますが、Boost.Pythonは様々なコンパイルや古いシステムに対応するために複雑になっていて、pybind11はシンプルな構成となっているようです。newerのようです。動作に必要なものをいれていきます。pybind11ではCMakeLists.txtが提供されているのでcmakeでMakefileつくってmakeを実行します。4やってみるまずは今回使用するC++のコードがこちらやりたいことは単純で与えられた2つの数値の和を求めるだけファイル名はexample.cppで保存している。numbers");}続いてPythonから呼び出すためにC++のコードをビルドする。docにビルド時のサンプルが書いてあるのでincludeディレクトリとpython-configがpython3-configとかを考慮して下記で実行してみる。example.soすると下記のようなエラーが出て来る。オプションが足りないみたいなので追加する。後はPythonのREPLで確認していく。4)7となる!!!!!!おぉーでたという感じ。C++のコードを少し見てみる。numbers");}ここでPYBIND11_MODULEの第一引数に渡されているexampleはモジュール名になる。そのままの意味でモジュールに対してのドキュメントを定義する。pluginこのようにdocを参照できるようになる。Pythonから呼び出すメソッドの定義をしている。これにもdocは定義できるので、Python上でdocを参照することが出来る。2017の5日目の記事です。Subscription月別アーカイブはてなブログをはじめよう!hatappi1225さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。