[Top]

My Tcl/Tk page

自作したTcl/Tkスクリプト置場です。


[前] おしながき

準備編

[Table of Contents]

Windows でTcl/Tkを使う

「Tcl/Tk windows」で検索をかけると、いろんなパッケージが見つかります。 どのパッケージが良いのか? 正直、わかりません(^_^;; KAKU-chanさん構築のパッケージ [Link]は「Windows のレジストリも変更しない」と明記してますので、心配性の人には気楽かもしれません。パッケージ展開後の「ディスク上のサイズ」は約25MB(ver 8.4.11)です。 私が使っているのはこれです(2011)。USBメモリなどに入れてPortableな感じで使ってます。 C:ドライブやUSBメモリの /Apps/usr-local/tcl_tk-8.4.11に入れてます。 (Windows10 でも、私の単純なスクリプトであれば、なんか普通に動いてます。)

 ところで。私が使っているパッケージについてですけど。パッケージを配布していた KAKU-chanさんのサイトがあった Nifty の @homepage サービスが 2016年に 終了してしまいましたので、それ以降はパッケージをゲットできなくなってます。‥ となると ActiveTCL の Free Community Edition を使うのが良いですかね。

[Table of Contents]

Portable ActiveTcl は?

ActiveTCL もそうですが、 Tclは所謂「小道具」だと思いますので、わざわざPCに「インストール」なんて せずとも、USBメモリなどに入れて持ち歩き必要に応じてチョコチョコ使う‥。 と、そんな使い方が良さげに思います。そこで。ActiveTcl を Portable な感じで 使うのは可能か? というのをやってみました。具体的には、 インストール時に作られた "Tcl" フォルダをUSBメモリなど、 インストールしたのとは別の場所にコピーして 起動してみたんですけど。‥お、案外いけてる感じがするぞ?!

 ただ問題はありました。JPEG画像を扱うときに必要となる例のコレ:

package require Img
これがうまく行かないのです。なんか Img がある場所が見つからないみたいです。

 そこでいろいろ調べた結果‥

  • まず以下:
    tcl::tm::path add "$Tcl/lib/teapot/package/tcl/teapot/tcl8/8.4"
    これを実行してやる("$Tcl" は、ActiveTcl のフォルダがある位置に 適宜置き換えてください)。これで Img モジュールを見つけてくれるみたいです。 けど Img モジュールを構成する各部品(?)の読み込みに失敗します。
  • そこで。次に以下も実行する:
    append auto_path " $Tcl/lib/teapot/package/win32-ix86/lib"
この2つを行うと、なんか Img パッケージを読み込んでくれるように、 私が試した環境では、なりました。たぶんどっかの設定ファイルに これに類したことを書けばいいんだろうとは思いましたけど。どこを直せばよいのか、 よくわからないので放置 (^_^;

Wish.exe 起動後、コンソールでこんな感じで確認しました:

(bin) 1 % package require Img
can't find package Img
(bin) 2 % cd ..
(ActiveTcl) 3 % cd lib/teapot/package
(package) 4 % set DIR [pwd]
C:/Users/Public/IN-OUT/ActiveTcl/lib/teapot/package
(package) 5 % cd $DIR/tcl/teapot/tcl8/8.4
(8.4) 6 % tcl::tm::path add [pwd]
(8.4) 7 % cd $DIR/win32-ix86/lib
(lib) 8 % append auto_path " " [pwd]
C:/Users/Public/IN-OUT/ActiveTcl/lib/tcl8.6 C:/Users/Public/IN-OUT/ActiveTcl/lib C:/Users/Public/IN-OUT/ActiveTcl/lib/tk8.6 C:/Users/Public/IN-OUT/ActiveTcl/lib/tk8.6/ttk C:/Users/Public/IN-OUT/ActiveTcl/lib/teapot/package/win32-ix86/lib
(lib) 9 % package require Img
1.4.3
(lib) 10 % image create photo i1 -file "$env(HOME)/Desktop/img/a.jpg"
i1
(lib) 11 % label .a -image i1
.a
(lib) 12 % pack .a
一応、ここでは C:/Users/Public/IN-OUT/ActiveTcl が、ActiveTcl のパッケージ (を移したもの)がある場所になってます。

[Table of Contents]

MacOSX でTcl/Tkを使う

MacOSX 10.4 Tiger 以降は、Tcl/Tk が標準装備になりました。日本語も utf-8 だと フツーに使えるみたいです。けど、いまいち何かシックリ来ない‥

[次] MacOSX で Tcl/Tk を使う(10.4 Tiger以降)