You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby Glimmer运行示例抛出NameError异常,求解决方法

问题描述

按照RubyConf workshop教程操作,已执行gem install glimmer-dsl-libui成功安装glimmer(2.7.6)和glimmer-dsl-libui(0.11.8),但运行glimmer examples时抛出如下错误:

Traceback (most recent call last):
    27: from /Users/marion/.rvm/gems/ruby-2.7.6/bin/glimmer:23:in `<main>'
    26: from /Users/marion/.rvm/gems/ruby-2.7.6/bin/glimmer:23:in `load'
    25: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/bin/glimmer:24:in `<top (required)>'
    24: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/bin/glimmer:24:in `require_relative'
    23: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer-dsl-libui.rb:39:in `<top (required)>'
    22: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
    21: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
    20: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/dsl/libui/dsl.rb:23:in `<top (required)>'
    19: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/dsl/libui/dsl.rb:23:in `each'
    18: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/dsl/libui/dsl.rb:23:in `block in <top (required)>'
    17: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
    16: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
    15: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/dsl/libui/tab_item_expression.rb:23:in `<top (required)>'
    14: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
    13: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
    12: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/tab_item_proxy.rb:22:in `<top (required)>'
    11: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
    10: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
     9: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy.rb:425:in `<top (required)>'
     8: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy.rb:425:in `each'
     7: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy.rb:425:in `block in <top (required)>'
     6: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
     5: from /Users/marion/.rvm/rubies/ruby-2.7.6/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:83:in `require'
     4: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:27:in `<top (required)>'
     3: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:28:in `<module:Glimmer>'
     2: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:29:in `<module:LibUI>'
     1: from /Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:33:in `<class:ControlProxy>'
/Users/marion/.rvm/gems/ruby-2.7.6/gems/glimmer-dsl-libui-0.11.8/lib/glimmer/libui/control_proxy/text_proxy.rb:35:in `<class:TextProxy>': uninitialized constant Glimmer::LibUI::ControlProxy::TextProxy::PerfectShaped (NameError)

原因分析

这个错误是由于PerfectShaped库缺失导致的。PerfectShaped是glimmer生态中的依赖组件,当前安装的glimmer(2.7.6)与glimmer-dsl-libui(0.11.8)版本组合存在依赖不兼容问题,导致gem安装过程中没有自动引入所需的PerfectShaped库。

解决方法

  • 升级glimmer到兼容版本:

    gem update glimmer
    

    升级完成后重新运行glimmer examples。

  • 重新安装兼容版本的gem组合:

    gem uninstall glimmer glimmer-dsl-libui
    gem install glimmer-dsl-libui --version latest
    

    让gem自动处理所有依赖的版本匹配。

  • 手动安装PerfectShaped:

    gem install perfect_shaped
    

    安装完成后再尝试运行命令。

内容的提问来源于stack exchange,提问作者MDickten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:10:06