Ruby需要导致未定义的局部变量

Ruby需要导致未定义的局部变量,ruby,amazon-web-services,path,rubygems,undefined,Ruby,Amazon Web Services,Path,Rubygems,Undefined,我完全是鲁比的不速之客。我希望执行一个从Amazon AWS IoT页面获取的文件,但我对以下初始要求有问题 我使用的是Ubuntu18.04,我已经安装了ruby和sudo-apt-get-install-ruby-full,还有sudo-gem-install-mqtt。该文件名为iot-connector.rb。我使用ruby iot-connector.rb执行该文件。很明显,它找不到这些require文件,但我如何告诉Ruby找到它们呢。谢谢 require ‘rubygems’ re

我完全是鲁比的不速之客。我希望执行一个从Amazon AWS IoT页面获取的文件,但我对以下初始要求有问题


我使用的是Ubuntu18.04,我已经安装了ruby和sudo-apt-get-install-ruby-full,还有sudo-gem-install-mqtt。该文件名为iot-connector.rb。我使用ruby iot-connector.rb执行该文件。很明显,它找不到这些require文件,但我如何告诉Ruby找到它们呢。谢谢

require ‘rubygems’
require ‘mqtt’

#more code....
我得到的错误是:

Traceback (most recent call last):
iot-connector.rb:1:in `<main>': undefined local variable or method `‘rubygems’' 
for main:Object (NameError)
回溯(最近一次呼叫最后一次):
iot connector.rb:1:in``中:未定义的局部变量或方法''rubygems''
对于主:对象(NameError)

如果使用了错误的引号类型,请使用常规引号而不是反引号:

require 'rubygems'
require 'mqtt'
反引号用于运行shell命令,顺便说一句。奇怪的是,这里会出现ruby错误,我希望出现如下情况:

[29] pry(main)> `rubygems`
Errno::ENOENT: No such file or directory - rubygems

如果使用了错误的引号类型,请使用常规引号而不是反引号:

require 'rubygems'
require 'mqtt'
反引号用于运行shell命令,顺便说一句。奇怪的是,这里会出现ruby错误,我希望出现如下情况:

[29] pry(main)> `rubygems`
Errno::ENOENT: No such file or directory - rubygems

require'rubygems'
顺便说一句,已经11年没有必要了(从Ruby 1.9开始),“很明显,它找不到这些require文件”——嗯,不,一点也不明显。事实上,这甚至不是真的。错误消息没有说明找不到文件。它说的是找不到变量。特别是,它告诉您它找不到的变量的名称,该名称是
'rubygems'
。注意:它找不到的名称是
'rubygems'
,而不是
rubygems
。这告诉了你什么?
require'rubygems'
,顺便说一句,11年来都没有必要(自Ruby 1.9以来)“很明显,它找不到这些require文件”——嗯,不,一点也不明显。事实上,这甚至不是真的。错误消息没有说明找不到文件。它说的是找不到变量。特别是,它告诉您它找不到的变量的名称,该名称是
'rubygems'
。注意:它找不到的名称是
'rubygems'
,而不是
rubygems
。这告诉了你什么?原来的帖子有
,这不是一个反勾,而是
留下了一个单引号(U+2018)
啊,这就是问题所在。那句话就是问题所在。愚蠢的我)现在它工作了原来的帖子有
这不是一个反勾号,而是
留下了一个单引号(U+2018)
啊,这是很多问题。那句话就是问题所在。愚蠢的我)现在它的工作