HOME  >  スポンサー広告 >  Ruby >  Windows 7 に Ruby 2.0 x64 を その4 ~拡張 tk の問題と対策~

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/-- | カテゴリ:スポンサー広告 | トラックバック(-) | コメント(-)

Windows 7 に Ruby 2.0 x64 を その4 ~拡張 tk の問題と対策~

4 回目の今回は、拡張 tk のインストールについて。
# Windows に限らず Mac OS X、 Linux でも同じことができます。

x86 だと、拡張 tk が入った Ruby/Tk-Kit がありますが、x64 版は見当たりません……
# というか、Ruby/Tk-Kit の本家サイトが落ちてるみたい?? x64 版も実はある??

そんなわけで x64 環境で拡張 tk を使いたい!そんなあなたに、ActiveTcl の拡張 tk。
Download Tcl: ActiveTcl Community Edition
(もちろん x64 版をダウンロードしてください)

しかし、ただインストールするだけでは使えるようにはなりません。
以下の 2 つのどちらかを行なって、Ruby から ActiveTcl のライブラリが見えるようにしてあげます。
  1. Ruby/Tk のライブラリがあるディレクトリへ ActiveTcl のライブラリをコピー
  2. ActiveTcl のライブラリへのパスを追加する
おすすめは後者です。

ActiveTcl のライブラリを Ruby/Tk のライブラリがあるディレクトリへコピー

利点:簡単(ファイルをコピーするだけ)
欠点:同じファイルが複数あって無駄(アップグレードとかめんどうになる)

以下のようにコピーするだけです。
コピー元:{ActiveTcl のインストール先}\lib\teapot\package\win32-x86_64\lib 内の全て
コピー先:{ruby のインストール先}\lib\tcltk

ActiveTcl のライブラリへのパスを追加する

利点:ファイルをコピーしなくていい
欠点:ソース直しが必要(やる内容は設定ファイルの編集みたいなもんにすぎないけど……)

編集するファイルは、以下 2 つのどちらか。
  • {ruby のインストール先}\lib\ruby\2.0.0\tkextlib\setup.rb
  • {ruby のインストール先}\lib\ruby\2.0.0\tkextlib\{ほにゃらら}\setup.rb
ほにゃららの部分は、例えば jpeg などの画像系の拡張ライブラリのみ適用する場合は
tkimg が入り、以下のようになります。
{ruby のインストール先}\lib\ruby\2.0.0\tkextlib\tkimg\setup.rb

ActiveTcl のライブラリには画像系以外にも色々含まれているので、前者を編集すればいいと思います。
#
#  setup.rb   --   setup script before using Tk extension libraries
#
#    If you need some setup operations for Tk extensions (for example,
#    modify the dynamic library path) required, please write the setup
#    operations in this file. This file is required at the last of
#    "require 'tk'".
#
dir = '{ActiveTcl のインストール先}\lib\teapot\package\win32-x86_64\lib'
TkPackage.add_path(File.expand_path(dir))

パス部分は環境に合わせて適宜読み替えてください。
以下のプログラムを実行してエラーメッセージがでなければ OK です。
require "tk"
require "tkextlib/tkimg/jpeg"
パスがおかしいと、以下のようなメッセージがでます。
C:/ruby/lib/ruby/2.0.0/tk/package.rb:86:in `rescue in require': TkPackage can'tfind package img::jpeg (RuntimeError)
        from C:/ruby/lib/ruby/2.0.0/tk/package.rb:83:in `require'
        from C:/ruby/lib/ruby/2.0.0/tkextlib/tkimg/jpeg.rb:14:in `'
        from C:/ruby/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
        from C:/ruby/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require'
        from test.rb:2:in `
'
2014/01/02 | カテゴリ:Ruby | トラックバック(0) | コメント(0)
コメントの投稿












管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
http://uisteven.blog.fc2.com/tb.php/39-3a1b1397

外部リンク

カンパのお願い
公開しているソフトウェアはフリーウェアなので無料でご利用いただけます。 気に入ってくださった方は、Amazon でお買い物をする際に下記のリンクを経由して頂ければ励みになります。

検索BOX・タグ一覧
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。