一个特别短的ruby/tk代码:

require 'tkextlib\iwidgets'
require 'tkextlib\bwidget'

x = 0
101.times {|i| x+=i}
Tk.messageBox(:type=>:ok,:title=>"win",:message=>"total 100 is #{x}")

但是运行提示出错:

/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- tkextlib\iwidgets (LoadError)
	from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from 1945.rb:1:in `<main>'

这段代码原来是windows下写的,首先发现路径分隔符在linux需要用/。windows下估计/和\都可以吧?!然后接着运行,原来的错误木有了,新的错误出现鸟:

/usr/lib/ruby/2.1.0/tk/package.rb:86:in `rescue in require': TkPackage can't find package BWidget (RuntimeError)
	from /usr/lib/ruby/2.1.0/tk/package.rb:83:in `require'
	from /usr/lib/ruby/2.1.0/tkextlib/bwidget.rb:16:in `<top (required)>'
	from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
	from 1945.rb:2:in `<main>'

提示找不到BWidget包,遂locate之,发现头文件啥的都是有的啊:

/usr/lib/ruby/2.1.0/tkextlib/bwidget
/usr/lib/ruby/2.1.0/tkextlib/bwidget.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/arrowbutton.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/bitmap.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/button.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/buttonbox.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/combobox.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/dialog.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/dragsite.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/dropsite.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/dynamichelp.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/entry.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/label.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/labelentry.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/labelframe.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/listbox.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/mainframe.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/messagedlg.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/notebook.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/pagesmanager.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/panedwindow.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/panelframe.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/passwddlg.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/progressbar.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/progressdlg.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/scrollableframe.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/scrolledwindow.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/scrollview.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/selectcolor.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/selectfont.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/separator.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/setup.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/spinbox.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/statusbar.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/titleframe.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/tree.rb
/usr/lib/ruby/2.1.0/tkextlib/bwidget/widget.rb
/usr/lib/x86_64-linux-gnu/deja-dup/libwidgets.so
/usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/PrivateWidgets/libwidgetsplugin.so

难道是库文件没有?于是乎用 sudo apt-get install bwidget安装,接着运行,这个世界清净啦:

ruby TkPackage can't find package BWidget 之解决办法的更多相关文章

  1. sublime text 3 无法安装Package Control插件解决办法

    sublime text 3 无法安装Package Control插件解决办法 ***关于sublime text 3 常用的 Package Control插件的安装方法*** 1.CTRL+` ...

  2. 出现No package gcc+ available解决办法

    系统 CentOS Linux release 7.4.1708 (Core)   安装gcc时报错 [root@ip---- node-v10.15.3]# yum -y install gcc+ ...

  3. ubuntu-E:Encountered a section with no Package: header的解决办法 (转)

    E:Encountered a section with no Package: header, E:Problem with MergeList /var/lib/apt/lists/cn.arch ...

  4. ubuntu-E:Encountered a section with no Package: header的解决办法

    刚才打开ubuntu,我的版本是12.04.正想使用sudo apt-get install build-essential 时,出现了如下错误: E:Encountered a section wi ...

  5. Unable to locate package python3 错误解决办法

    错误 huny@DESKTOP-N1EBKQP:/mnt/c/Users/Administrator$ sudo apt-get install python3 Reading package lis ...

  6. Visual Studio 2010 更新NuGet Package Manager出错解决办法

    在Visual Studio 2010的扩展管理器中发现NuGet Package Manger有最新版本更新提示,选择更新安装提示以下错误信息: 2013/4/25 1:11:48 - Micros ...

  7. Flutter 卡在 package get 的解决办法

    今天在尝试使用Flutter 的时候,需要使用一个第三方库 修改了 pubspec 文件之后,AS 像往常一样提示 需要 package get. 之前都挺正常,不知道今天怎么了. 一直处在 Runn ...

  8. yum与apt命令比较,yum安装出现No package vim available解决办法

    yum (Yellowdog Updater Modified)是一个集与查找,安装,更新和删除程序的Linux软件.它运行在RPM包兼容的Linux发行版本上,如:RedHat, Fedora, S ...

  9. yum安装出现No package vim available解决办法

    [root@iZwz96wgquf8g6okusxr0uZ yum.repos.d]# yum install yum-downloadLoaded plugins: fastestmirrorLoa ...

随机推荐

  1. JDBC数据库连接简介(一)

    jdbc的由来 odbc(open database connection) 最初各个数据库比如mysql和oracle等,虽然都支持sql,但是他们的连接方式是不一样的,需要按照相应的api来编写不 ...

  2. 剑指Offer——归并排序思想应用

    剑指Offer--归并排序思想应用 前言 在学习排序算法时,初识归并排序,从其代码量上感觉这个排序怎么这么难啊.其实归并排序的思想很简单:将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列 ...

  3. Django完整的开发一个博客系统

    今天花了一些时间搭了一个博客系统,虽然并没有相关于界面的美化,但是发布是没问题的. 开发环境 操作系统:windows 7 64位 Django: 1.96 Python:2.7.11 IDE: Py ...

  4. Android初级教程:shape的基本用法

    转载本文请注明出处:http://blog.csdn.net/qq_32059827/article/details/52203347   点击打开链接 在自定义进度条之前,先来学习一下shape的用 ...

  5. 01_Linux系统系统语言查询,设置Xshell工具,中文显示,测试Xshell中文字符显示,Linux中文显示乱码设置

              Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNETNetSarang Xshell 4 Build 0 ...

  6. iOS开发之六:常用控件--UIImageView的使用

    UIImageView是我们做iOS开发用的非常多的一个控件,IOS中的各种图片,包括头像,有的背景图片等基本都要用到这个控件. 1.常用的属性以及方法 <span style="fo ...

  7. VC++读取图像RGB值

    代码: #include <iostream> #include <fstream> #include <string> #include <windows. ...

  8. Linux0.11中对文本文件进行修改的策略

    现在,假设 hello.txt 是硬盘上已有的一个文件,而且内容为 "hello, world" ,在文件的当前指针设置完毕后,我们来介绍 sys_read , sys_write ...

  9. 【Android】自定义ListView的Adapter报空指针异常解决方法

    刚刚使用ViewHolder的方法拉取ListView的数据,但是总会报异常.仔细查看代码,都正确. 后来打开adapter类,发现getView的返回值为null. 即return null. 将n ...

  10. Counting Bloom Filter

    Counting Bloom Filter是 改进型,将记录标准的存在位0和1,扩展为计数器counter.记录有几个元素.插入加一,删除减一.多占几倍存储空间. 标准的Bloom Filter是一种 ...