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」カテゴリの記事
- Noteの記事をPythonでバックアップしといた。(2021.05.05)
- JupyterLabでも好きな外部エディターを使いたい!(2018.05.02)
- ローカルエリア内のJupyterLabサーバーにLAN経由で接続する。(2018.05.02)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
« 論文中のギリシャ文字など特殊文字のインサート | トップページ | Dreampieを好きなワーキングディレクトリで起動。 »
コメント