更新:
我找到了简单的答案,这完全是我自己的错:我将上面的代码存储在一个名为"eventmachine.rb“的文件中。因此,当我需要' EventMachine‘时,它只是导入了相同的文件,该文件不包含EventMachine的定义。
所以这并不是一篇关于EventMachine的文章。
原文:
打扰一下,这是怎么回事?
require 'rubygems'
require 'eventmachine'
EventMachine给出
uninitialized constant EventMachine在TextMate和控制台上,当我运行"ruby myfile.rb“时。
但如果我在IRB中输入相同的内容,我会得到
=> EventMachine。
..。
我非常沮丧,所以我遵循了http://blog.carlmercier.com/2007/12/14/how-to-fix-that-rubygems-mess-on-leopard/上的轻率说明--清除了我的Ruby和Rubygem环境,并从MacPorts重新安装了它们。IRB仍然可以工作,TextMate/commandline仍然以同样的方式失败。我甚至将我的本地路径减少到现在安装Ruby、Gem和IRB的位置:/opt/ TextMate /bin --这就是报告的内容。
最后,当我
puts Gem.path在IRB、TextMate或控制台上,我得到了相同的路径。
发布于 2011-07-17 01:32:24
我找到了简单的答案,这完全是我自己的错:我将上面的代码存储在一个名为"eventmachine.rb“的文件中。因此,当我需要' EventMachine‘时,它只是导入了相同的文件,该文件不包含EventMachine的定义。
发布于 2011-07-15 06:41:32
你装好宝石了吗?
gem install eventmachine通常,在您显示的代码中出现这样的错误是因为
require 'eventmachine'失败,并且未定义类/模块常量EventMachine。
此外,如果您运行的是ruby1.9,则不再需要
require 'rubygems'发布于 2011-07-15 08:02:15
我不明白为什么消息是"Uninitialized Constant",但问题是你没有提供任何东西来运行。我得到了与您的代码相同的错误,但如果我将其更改为:
EventMachine::run{
EventMachine::add_periodic_timer( 0.1) {
print '.'
}
}然后它就像我预期的那样工作--它每秒打印10个点。
https://stackoverflow.com/questions/6700771
复制相似问题