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

执行rake命令遇LoadError报错,如何获取预期输出?

解决Rake加载文件失败的问题

问题原因

报错LoadError: cannot load such file -- ./lib/hello的核心是文件路径匹配错误:你的Rakefile.rb和hello.rb都在lib目录下,但执行rake命令时的当前工作目录,与代码里写的相对路径不匹配,导致Ruby找不到hello.rb文件。

两种可行解决方案

方案1:调整执行命令与目录

  1. 回到项目根目录(即lib目录的上级目录)
  2. 执行指定Rakefile路径的命令:
    rake -f lib/Rakefile.rb
    
    此时./lib/hello的路径是相对于根目录,刚好指向lib/hello.rb,能正确加载文件。

方案2:修改Rakefile的路径写法(推荐)

修改Rakefile.rb里的run任务代码,让路径不依赖执行命令的当前目录:

#!/usr/bin/ruby -wKU

task :default => :run

task :run do
  # 将Rakefile所在的lib目录添加到Ruby的加载路径
  $LOAD_PATH.unshift(File.dirname(__FILE__))
  # 直接加载hello.rb(无需写相对路径前缀)
  require 'hello'
end

修改后,不管你在项目根目录还是lib目录执行rake(根目录执行需加-f lib/Rakefile.rb),都能正确找到hello.rb文件。

验证修改

执行对应命令后,终端应该输出预期内容:

Hello, World!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:05:13