« 論文中のギリシャ文字など特殊文字のインサート | トップページ | Dreampieを好きなワーキングディレクトリで起動。 »

2011年7月12日 (火)

boost.pythonをWindows 7で試す。

boost.pythonはC++のライブラリーをソースをいじることなくラップしてPythonから使ってしまおうということが出来るらしい(逆も可)、強力なライブラリーです。C++のライブラリーが使いたいけどPythonへのバインディング、ラッパーがないとかしても、自分でやってしまえるようになるかもしれない。ということで挑戦。

http://www.boost.org/doc/libs/1_46_1/more/getting_started/windows.html
の第一章Get Boostにあるとおり
http://www.boostpro.com/
というサイトからウインドウズのバイナリインストーラーをゲットする。ただいまの最新版は1.46.1でした。http://boostpro.com/download/boost_1_46_1_setup.exe

boostのインストーラーを起動すると、Visual Studioのバージョンを聞かれるので、もしVisual Studioが入っていない場合、インストールしておく。あまり古いのは良くないだろうと思うので、VC C_++の2008か2010でフリーのエクスプレスエディションをいれる。当方はVC2008Express editionが入っているのでVersionは9.0ということになる。

Variantsのところは動作確認取れるまではとおもい、とにかく全部チェックしてしまった。その次の画面では、Pythonのところにチェックを入れる。(最初からチェックが入っているように見えるがクリックすると色が変わり、インストール容量も増える。)

普通にインストールするとWindows 7なら
C:\Program Files (x86)\boost\boost_1_46_1
がboostのルートフォルダーになる。

あとでbjamのバイナリが必要なのでBoostProからのバイナリーインストーラーを使ったが、なぜだかToolsとStatusのフォルダーが含まれないようで、特にToolsに入っているものはbjamを使うのに必要なのでソースのディストリビューションからToolsをまるまるboost_1_46_1にコピーする。
http://www.boost.org/users/history/version_1_46_1.html

今度はここを参考にbjamを使うための設定ファイルを作成する
http://www.boost.org/doc/libs/1_46_1/libs/python/doc/tutorial/doc/html/python/hello.html

C:\Users\ユーザー名\user-config.jam

という名前で
#  MSVC configuration
using msvc : 9.0 ;

#  Python configuration
using python : 2.6 : C:\\Python26 ;

という内容で保存。9.0なのはVC2008だからVC2010なら適当に変える。pythonも使っているバージョンを指定する。bjamにパスが通っている必要あるので環境変数に
C:\Program Files (x86)\boost\boost_1_46_1\bin
を追加する。

C:\Program Files (x86)\boost\boost_1_46_1\libs\python\example\tutorial
にあるhello.cppの例をコンパイルしてみる。hello.cppは書き込みできるユーザー領域の別の場所に移動するべきだけども、面倒なのでここまま続行。もし移動したらJamrootにあるuse-project boost
  : ../../../.. ;
のところを変更してboostのルートフォルダーがどこにあるかを教える必要あり。C:\\Program Files (x86)\\boost\\boost_1_46_1で絶対パス指定すればよさそうだけど試していない。

またCL.EXEにパスが通っている必要もあるのでVC C++2008に含まれるVisual Studio 2008 Command Promptを起動するが、hello.cppが非ユーザー領域にあるのでAdministratorとして、起動する必要がある。で、hello.cppのある上記フォルダーまでcdする。そしておもむろにbjamとタイプ。

コンパイルが終わったら、同じフォルダーにhello_ext.pydが出来ているはず。hello_ext.pydはコンパイルされたC-extensionのライブラリー本体でパスが通っている場所にあればPythonからインポートできる。でもSite-packagesとかにコピーするほどのこともないのでここままのディレクトリからpythonをVisual Studio 2008 Command Prompt上で起動して、import hello_extとしてみる。エラーにならず、hello_ext.greet()でhello, worldがでたら成功!!

もしかしたら
C:\Program Files (x86)\boost\boost_1_46_1にある
bootstrap.batを起動して、その後、.\bjamとしてBoost.Build systemの設定をする必要があるのかもしれない。BoostProからのバイナリーインストーラーを使っているので必要ないとおもうけど、動くまで色々とやったのでわからない。

« 論文中のギリシャ文字など特殊文字のインサート | トップページ | Dreampieを好きなワーキングディレクトリで起動。 »

Python」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1169291/40777343

この記事へのトラックバック一覧です: boost.pythonをWindows 7で試す。:

« 論文中のギリシャ文字など特殊文字のインサート | トップページ | Dreampieを好きなワーキングディレクトリで起動。 »

広告欄


やっつけタイムライン

広告欄

はてブ

人目の訪問です。

  • follow us in feedly

    かなり更新が不定期なため、RSSリーダーをオススメします。現在Feedlyに122人登録頂いています。多謝!RSSを表示

    ブログランキング用 にほんブログ村 IT技術ブログ Pythonへ ブログランキングならblogram






    Jenny Mayhem
2017年7月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

IT技術注目記事

無料ブログはココログ