更新:
我找到了简单的答案,这完全是我自己的错:我将上面的代码存储在一个名为“eventmachine.rb”的文件中。因此,当我需要“eventmachine”时,它只是导入了相同的文件,该文件不包含 EventMachine 的定义。
所以这并不是一篇关于 EventMachine 的文章。
原帖:
对不起,但发生了什么事?
require 'rubygems'
require 'eventmachine'
EventMachine
给
uninitialized constant EventMachine
当我运行“ruby myfile.rb”时,在 TextMate 和控制台上。
但是如果我在 IRB 中输入相同的内容,我会得到
=> EventMachine
.
...
我非常沮丧,以至于我按照http://blog.carlmercier.com/2007/12/14/how-to-fix-that-rubygems-mess-on-leopard/上的轻率说明进行操作——清除我的 Ruby 和Rubygems 环境并从 MacPorts 重新安装它们。IRB 仍然有效,TextMate/commandline 仍然以同样的方式失败。我什至将我的 TextMate PATH 减少到现在安装了 Ruby、Gem 和 IRB 的一个位置:/opt/local/bin——这就是 which 报告的内容。
最后,当我
puts Gem.path
在 IRB、TextMate 或控制台上,我得到相同的路径。