require ’tk’ でエラー
公開日:
:
Ruby
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
以下のようなスクリプトを記述。
require 'tk'
TkLabel.new { text 'Hello, World!'; pack }
Tk.mainloop
実行すると、以下のようなエラーが出る。
$ ruby chap19.rb
chap19.rb:9:in `require': no such file to load -- tk (LoadError)
from chap19.rb:9
んで、色々と調査。
$ which ruby
/opt/local/bin/ruby
$ ruby -e 'puts $:'
/opt/local/lib/ruby/site_ruby/1.8
/opt/local/lib/ruby/site_ruby/1.8/i686-darwin8.10.1
/opt/local/lib/ruby/site_ruby
/opt/local/lib/ruby/vendor_ruby/1.8
/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin8.10.1
/opt/local/lib/ruby/vendor_ruby
/opt/local/lib/ruby/1.8
/opt/local/lib/ruby/1.8/i686-darwin8.10.1
.
$ /usr/local/bin/ruby -e 'puts $:'
/usr/local/lib/ruby/site_ruby/1.8
/usr/local/lib/ruby/site_ruby/1.8/i686-darwin8.10.1
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/1.8
/usr/local/lib/ruby/1.8/i686-darwin8.10.1
.
$ locate tk.rb
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/multi-tk.rb
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/remote-tk.rb
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/tcltk.rb
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/tk.rb
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/tkextlib/itk/incr_tk.rb
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/tkextlib/itk.rb
以下、自分で考えてみた。
- /usr/local/bin/ruby は MacOSX に初めから入っている Ruby ?
- /opt/local/bin/ruby は MacPorts を使ってインストールした Ruby ?
- どっちの Ruby も /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/tk.rb を参照していない
- 現在使っている /opt/local/bin/ruby で tk.rb を使うにはどうしたらいいのか?gem かなにかでインストール?
関連記事
- PREV
- 第18章「RubyとWeb」を読んだ
- NEXT
- rubygemsのインストールでエラー