首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby找不到rubygems或wx模块

Ruby找不到rubygems或wx模块
EN

Stack Overflow用户
提问于 2012-11-05 03:38:45
回答 2查看 454关注 0票数 1

我在我的英特尔iMac上运行默认的Ruby安装(ruby1.8.7 (2010-01-10 patchlevel 249) i686-darwin10)。我更新了RubyGems并安装了wxruby gem。我正在尝试运行以下示例程序:

代码语言:javascript
复制
#!/usr/bin/ruby
require "rubygems"
require "wx"


class MyApp < Wx::App
    def on_init
        @frame = Wx::Frame.new(nil, -1, "The Bare Minimum")
        @frame.show()
    end
end

app = MyApp.new()
app.main_loop()

我得到了以下错误:

代码语言:javascript
复制
==> wxruby-test.rb
/Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle, 9): no suitable image found.  Did find: (LoadError)
    /Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle: no matching architecture in universal wrapper - /Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wxruby2.bundle
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:36:in `require'
    from /Library/Ruby/Gems/1.8/gems/wxruby-1.9.3-universal-darwin/lib/wx.rb:12
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `gem_original_require'
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:60:in `require'
    from wxruby-test.rb:3

如果我注释掉了require rubygems语句,我会得到以下错误:

代码语言:javascript
复制
==> wxruby-test.rb
wxruby-test.rb:3:in `require': no such file to load -- wx (LoadError)
    from wxruby-test.rb:3

我是Mac上的Ruby新手,我确信这是一些可能与路径有关的基本错误,但大多数关于环境变量的解释都是针对有经验的用户的。如果您需要其他命令的更多输出,请让我知道。我在tcsh shell中运行Ruby。我确信我做了一些基本错误的事情,但我只是被难住了。

EN

回答 2

Stack Overflow用户

发布于 2012-11-05 04:05:16

如果你运行的是Ruby1.8.7,你应该在require语句中留下:

代码语言:javascript
复制
require "rubygems"

Ruby 1.8默认情况下不知道gems,所以我们不得不告诉Ruby需要gems加载器。Ruby 1.9+捆绑了它,所以我们不再需要做这些事情了。

这与Mac (或Windows或Linux)操作系统无关,它与Ruby的默认加载路径有关。

而且,作为一个安全提示,不要弄乱苹果安装的Ruby。他们安装它是为了自己使用,它也被用于一些播客创建工具。而且,在将来的某个时刻,他们可能想要向系统添加一些东西,以利用Ruby (或Python或Perl)的预期配置。改变(或者更糟,删除它)会把你搞得一团糟。因此,我建议您不要管它,使用rbenv或RVM在沙箱中安装Ruby,在沙箱中您可以安全地戳、戳和弄乱它。

票数 0
EN

Stack Overflow用户

发布于 2012-11-05 04:25:16

什么版本的OS X?如果是狮子,那你就不走运了。wxwidgets库(以及基于它的东西,比如wxruby)仍然只有32位,并且是基于Carbon的。Lions是64位的,并且Carbon已被弃用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13222124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档