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

bundle install正常但gem加载失败问题求助

本地构建RuPlot Gem时的加载错误解决指南

问题场景

我正在本地构建一个gem,在代码中使用require 'RuPlot'时出现加载错误,错误输出如下:

/Users/arafat/.rbenv/versions/2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- ruplot (LoadError)
from /Users/arafat/.rbenv/versions/2.4.1/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from hello.rb:2:in `<main>'

RubyGems环境信息

- RUBYGEMS VERSION: 2.6.11
- RUBY VERSION: 2.4.1 (2017-03-22 patchlevel 111) [x86_64-darwin16]
- INSTALLATION DIRECTORY: /Users/arafat/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0
- USER INSTALLATION DIRECTORY: /Users/arafat/.gem/ruby/2.4.0
- RUBY EXECUTABLE: /Users/arafat/.rbenv/versions/2.4.1/bin/ruby
- EXECUTABLE DIRECTORY: /Users/arafat/.rbenv/versions/2.4.1/bin
- SPEC CACHE DIRECTORY: /Users/arafat/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/arafat/.rbenv/versions/2.4.1/etc
- RUBYGEMS PLATFORMS:
  - ruby
  - x86_64-darwin-16
- GEM PATHS:
  - /Users/arafat/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0
  - /Users/arafat/.gem/ruby/2.4.0

Bundler环境信息

Bundler 1.16.1
Platforms ruby, x86_64-darwin-16
Ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
Full Path /Users/arafat/.rbenv/versions/2.4.1/bin/ruby
Config Dir /Users/arafat/.rbenv/versions/2.4.1/etc
RubyGems 2.6.11
Gem Home /Users/arafat/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0
Gem Path /Users/arafat/.gem/ruby/2.4.0:/Users/arafat/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0

解决步骤

1. 修正大小写匹配问题

Ruby的require是大小写敏感的,错误提示找不到ruplot(全小写),但你代码里写的是require 'RuPlot'。先确认:

  • 你的gem主文件路径是lib/ruplot.rb还是lib/RuPlot.rb?建议统一用小写命名(Ruby社区惯例),然后把代码里的require改成require 'ruplot'
  • 如果要保留大小写,确保gemspec里的autorequire配置正确指向你的主文件,比如spec.autorequire = 'RuPlot'

2. 确认本地gem已正确安装

先检查本地是否已经安装了你的RuPlot gem:

gem list ruplot

如果没有列出,需要先构建并安装:

  1. 切换到你的gem项目根目录
  2. 运行构建命令:gem build ruplot.gemspec(替换成你的gemspec文件名)
  3. 安装本地生成的gem包:gem install ./ruplot-<version>.gem(替换成实际生成的文件名)

3. 配置Bundler管理本地gem(如果使用Bundler)

如果你用Bundler来管理项目依赖,需要把本地gem添加到Gemfile中:

gem 'ruplot', path: '/path/to/your/local/ruplot/gem'

然后执行:

bundle install

之后要用Bundler来执行你的脚本,确保加载正确的gem版本:

bundle exec ruby hello.rb

4. 验证gem的文件结构与gemspec配置

确保你的gem项目结构符合RubyGem规范:

  • 主文件放在lib/目录下,比如lib/ruplot.rb
  • gemspec里的spec.files要包含lib目录下的所有文件,比如:
    spec.files = Dir["lib/**/*", "README.md", "LICENSE.txt"]
    
  • 确认spec.require_paths设置为["lib"](这是默认值,但最好检查一下)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:21:06