« Pythonのライセンス | メイン | boostのVC.NET 2003へのインストール »

2005年02月12日

Teaspire 開発日誌:: Pythonを組み込んでみる

    

簡単なコードでPythonの組み込みを行ってみる。
使ったバージョンはPython 2.3.4。
とりあえず、ソースコードは以下のような感じ。

#undef _DEBUG
#include <python.h>
#define _DEBUG

int main( int argc, char *argv[] )
{
  Py_Initialize();
  PyRun_SimpleString( "from time import time,ctime\n"
    "print 'Today is',ctime(time())\n");
  Py_Finalize();
  return 0;
}

#undef _DEBUG と #define _DEBUG で、#include <python.h> を囲んでいるのは、python.h 内でデバッグ時は python23_d.lib を要求しているため。
ソースDLして python23_d.lib を作ろうと思ったけど、途中で断念。
まあ、Python内まで追わなければ大丈夫なので、いらないはず。
で、_DEBUG のdefineをとってインクルードすることにした。
後、追加インクルードディレクトリに C:\Python23\include を追加。
リンクに C:\Python23\libs\python23.lib を追加。
で、ビルドして実行したら、PyRun_SimpleString に渡しているPythonスクリプトがキチンと実行された。
ここまでは簡単だな。

で、問題はC++のクラスから派生したクラスをPythonで書き、そのクラスをC++から実行するということが出来るかどうか。
シーングラフを使いたいと思っているので、そのシーングラフに追加するオブジェクトをPythonで書けないかなぁというのが動機。
SWIG 楽チンだったけど、boost::pythonはどうだろう?
相互にアクセスするなら boost::python の方が良さげだが。
とりあえず、使ってみないとな。



投稿者 Takenori : 2005年02月12日 00:28




comments powered by Disqus
Total : Today : Yesterday : なかのひと