2009/03/17(火) [n年前の日記]
#1 [python] Python+Tkinterが動かなくなっていた
いつから動かなくなっていたんだろう…。こんな状態になるなら、Python + Tkinter で関連ツールを書くんじゃなかった。blender に絡んでくるツールだから、Python を使ったほうがいいのかなとか、Tkならどこの環境にも比較的入ってる・インストール可能だから都合がいいかなとか、そのように思って使ったのがかえって裏目に出てしまったかもしれず。
Python 2.6.1 をアンインストール・再インストールしたものの、結果は変わらず。
どうも、ActiveTcl をインストールしたせい・環境変数の TK_LIBRARY に ActiveTcl のソレを指定したのが問題ではないのかと思えてきたり。なので試しに、ActiveTcl をアンインストールして、環境変数 TK_LIBRARY と TCL_LIBRARY を削除してみた。ちなみに、それぞれの環境変数は、
上記対処をしてみたところ、Python + Tkinter の helloworld スクリプトが動作した。するとやっぱり、ActiveTcl が原因だったということか。いや、TK_LIBRARY が原因なのかもしれないか。…しかし一体どこで設定したんだろう。>TK_LIBRARY。ActiveTclインストール時に自動で設定されたのかしら。そもそもどうして ActiveTcl なんぞを自分はインストールしていたのだろう。思い返してみたところ、どうも Ruby/Tk を試そうとした際にインストールしたような気がする。すると、結局はは Ruby が癌だったのか。<オイ。Ruby が自前で Tk関連ライブラリを内包していないのがマズイのだ。いやまあ、Ruby としてはそのへん何か理由があるんだろうけど。
というか、Ruby/Tk を使うために ActiveTcl をインストールして環境変数を設定したりすると、Python + Tkinter が使えなくなるというこの状況は非常にマズイ。自分が作ったスクリプトは、後々別環境で使われる可能性がありそうなのだけど、ソレを動かす環境では ActiveTcl をインストールしちゃダメ、Ruby はもちろん Ruby/Tk 使っちゃダメ、というわけにはいかないだろうと。
自分一人でスクリプトを使う分には、コマンドライン指定でも特に問題は無いけれど。他者が使う可能性がある場合は、ファイル指定等、GUIにしておいたほうが良さそうな気がする。しかし、てっとり早くGUIツールにできる Tk は、今回のようなトラブルが起きかねない。どうしたもんか…。
Python 2.6.1 をアンインストール・再インストールしたものの、結果は変わらず。
どうも、ActiveTcl をインストールしたせい・環境変数の TK_LIBRARY に ActiveTcl のソレを指定したのが問題ではないのかと思えてきたり。なので試しに、ActiveTcl をアンインストールして、環境変数 TK_LIBRARY と TCL_LIBRARY を削除してみた。ちなみに、それぞれの環境変数は、
TK_LIBRARY C:\usr\local\Tcl\lib\tk8.5
TCL_LIBRARY C:\usr\local\Tcl\lib\tcl8.5になっていたことをメモ。ActiveTcl のインストール先フォルダ内の特定フォルダを指定していたらしい。>過去の自分。
上記対処をしてみたところ、Python + Tkinter の helloworld スクリプトが動作した。するとやっぱり、ActiveTcl が原因だったということか。いや、TK_LIBRARY が原因なのかもしれないか。…しかし一体どこで設定したんだろう。>TK_LIBRARY。ActiveTclインストール時に自動で設定されたのかしら。そもそもどうして ActiveTcl なんぞを自分はインストールしていたのだろう。思い返してみたところ、どうも Ruby/Tk を試そうとした際にインストールしたような気がする。すると、結局はは Ruby が癌だったのか。<オイ。Ruby が自前で Tk関連ライブラリを内包していないのがマズイのだ。いやまあ、Ruby としてはそのへん何か理由があるんだろうけど。
というか、Ruby/Tk を使うために ActiveTcl をインストールして環境変数を設定したりすると、Python + Tkinter が使えなくなるというこの状況は非常にマズイ。自分が作ったスクリプトは、後々別環境で使われる可能性がありそうなのだけど、ソレを動かす環境では ActiveTcl をインストールしちゃダメ、Ruby はもちろん Ruby/Tk 使っちゃダメ、というわけにはいかないだろうと。
自分一人でスクリプトを使う分には、コマンドライン指定でも特に問題は無いけれど。他者が使う可能性がある場合は、ファイル指定等、GUIにしておいたほうが良さそうな気がする。しかし、てっとり早くGUIツールにできる Tk は、今回のようなトラブルが起きかねない。どうしたもんか…。
- Javaは、ソースを気軽に開いて中身を確認したり、修正したりすることができないだろうし。
- ActivePerl は Tkモジュールを同梱しなくなったからちと面倒だし。
- Ruby/Tk は別途 ActiveTcl を入れるのが面倒だし。
- Tcl/Tk は言語仕様の面でアレだし。
[ ツッコむ ]
以上です。