ふにゃるんv2

もとは、http://d.hatena.ne.jp/Wacky/

Python for Windowsで、各種2次元グラフを提供する、BLTライブラリを使えるようにする

ネットをふらふら彷徨っていると、PyJUGの活用事例のページで、高エネルギー加速器研究機構さんの紹介が載ってましてですね、そこに、興味深い説明箇所を見つけた訳です。

  • 制御システムのGUI

制御システムと操作員とのGUIにも Python/Tkinter(最近はPyGtkも)が使われる。とくにPmw.BLT.Graphは重宝している。

  • Oracleへアクセス
    Oracleデータベース中の制御システム基本データを Pythonを通じて制御システムで利用する。
  • データの解析・可視化
    データloggingシステムに蓄えられたデータを引きだし、解析する。Numerical Pythongnuplotが役立つ

この「とくにPmw.BLT.Graphは重宝している」ってのが、気になったので ぐぐってみた訳です。
Pmw1
Pmw1 posted from フォト蔵

なんですか、こりは?って、ムキになって調べると、色々と面白いネタが出てきたっす。


まず、Pmwは、Python megawidgetsの略みたいです。


どんなものかは、紹介サイトの動画GIFを見たら一目瞭然です。
http://heim.ifi.uio.no/~hpl/Pmw.Blt/doc/images/HelloVideo.gif


何か、ワクワクしてくるでしょ?

Pmwのインストール

ってんで、早速 Pmwをインストールします。


ダウンロードは、オフィシャルページの"Download Pmw.1.2 as tar.gz file (with full documentation)"をダウンロードします。


tarで展開した後、setup.pyを探したら、無い。
あれぇ?と思って、ドキュメントページを英日翻訳させてみたんですね。


…どうやら、展開したファイルをまるごと PythonのLib/site-packagesフォルダの下にコピーしろって事らしいです。
例えば、↓こんな感じ。

D:\hoge\Pmwを、
↓
C:\Python24\Lib\site-packagesの下に、Pmw丸ごとコピー

デモは、"C:\Python24\Lib\site-packages\Pmw\Pmw_1_2\demos\All.py"を実行して下さい。


ただ、問題が一つ。しかも、致命的。
肝心の"BltGraph"を選ぶとですねぇ。以下のメッセージが出て、実行できないんですよ。
Pmw2
Pmw2 posted from フォト蔵

だめじゃん。

BLTライブラリを入れる

ムキーとなったんで、更に調べてみました。
そしたら、答えがあった。


Linksの箇所に、以下のくだりがあったんですよ。

Troubleshooting
Getting Pmw.Blt to work on Windows machines. Some users have had a problem with importing the Pmw.Blt widget on Windows systems. Here is a recipe collected from Python newsgroup messages by Peter Brown at phbrown@acm.org:
1.Install BLT 2.4u into C:/Python20/tcl, using BLT's installer (the one for Tcl/Tk 8.3). This gives you bin, include, and lib subdirectories of C:/Python20/tcl, with all the BLT stuff in them.
2.Copy C:/Python20/tcl/lib/blt2.4 into C:/Python20/tcl/tcl8.3.
3.Put the BLT DLLs in a directory on your PATH (not necessarilly a system directory, it just has to be on your PATH)

要するに、BLTライブラリをダウンロードしてきて、Pythonの適当なフォルダにコピーしろって事らしいです。なるほど。


上のオフィシャルサイトから、BLTライブラリをダウンロードします。
私は、以下のファイルをダウンロードしました。

  • blt24z-for-tcl84.exe


上のファイルを実行すると、何か適当なフォルダに入れさせろ、と言って来ます。
最初、Python24フォルダ内のTclフォルダを指定してやろうと思ったんですが、ちょっと怖かったんで、デフォルトの"C:\Program Files\Tcl"に入れました。


後は、以下のようにコピーします。

  1. "C:\Program Files\Tcl\lib"以下をまるごと、"C:\Python24\tcl"の下にコピーします。
    コピーすると、"C:\Program Files\Tcl\lib\BLT24.lib"と"C:\Program Files\Tcl\lib\BLTlite24.lib"が、"C:\Python24\tcl\BLT24.lib"と"C:\Python24\tcl\BLTlite24.lib"に配置されます。
  2. "C:\Program Files\Tcl\bin"の下のDLLファイルを、"C:\Python24\DLLs"にコピーします。
    コピーすると、"C:\Program Files\Tcl\bin\BLT24.dll"と"C:\Program Files\Tcl\bin\BLTlite24.dll"が、"C:\Python24\DLLs\BLT24.dll"と"C:\Python24\DLLs\BLTlite24.dll"に配置されます。


これで、インストール完了です。
再び、デモ("C:\Python24\Lib\site-packages\Pmw\Pmw_1_2\demos\All.py")を動かして見ましょう。
Pmw3
Pmw3 posted from フォト蔵


いやほぅ!動きました。
Pmw.Bltのサンプル事例は、紹介サイト(http://heim.ifi.uio.no/~hpl/Pmw.Blt/doc/)の下に、Demosってのがありますんで、これを参考にすると良いと思います。