在Ruby*basic中使用gems*

在Ruby*basic中使用gems*,ruby,cmd,gem,Ruby,Cmd,Gem,我是个十足的新手 我有一个gem我想安装和使用,假设是这个: 我正在使用cmd: gem install linkedindata #1 gem installed 之后,我将其添加到我的文件中: gemrat 'linkedindata' #gem 'linkedindata', '0.0.22' added to your Gemfile. 现在要使用LinkedIn数据,我必须创建一个新对象并指定我的搜索。因此,我: **test.rb** l = LinkedinData.new(

我是个十足的新手

我有一个gem我想安装和使用,假设是这个:

我正在使用cmd:

gem install linkedindata
#1 gem installed
之后,我将其添加到我的文件中:

gemrat 'linkedindata'
#gem 'linkedindata', '0.0.22' added to your Gemfile.
现在要使用LinkedIn数据,我必须创建一个新对象并指定我的搜索。因此,我:

**test.rb**
l = LinkedinData.new(1, "c:/users/proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)
现在,我从命令提示符运行test.rb:

test.rb:1:in `<main>': undefined local variable or meth
od `linkedindata' for main:Object (NameError)
我得到以下错误:

C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `re
quire': cannot load such file -- linkedin-scraper (LoadError)
        from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require
.rb:54:in `require'
        from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin
data.rb:1:in `<top (required)>'
        from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require
.rb:128:in `require'
        from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require
.rb:128:in `rescue in require'
        from C:/Ruby22/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require
.rb:39:in `require'
        from C:/Users/test.rb:1:in `<main>'
++++更正gem在linkedindata.rb中需要“linkedin_scraper”的方式

下一个问题出现了

 C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin.rb:6:in `<cl
ass:Profile>': uninitialized constant Linkedin::Profile::ProxyManager (NameError
)
        from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin
.rb:5:in `<module:Linkedin>'
        from C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin
.rb:4:in `<top (required)>'
        from linkedinscrape.rb:4:in `require'
        from linkedinscrape.rb:4:in `<main>'
我加载它的方式:

l = LinkedinData.new(1, "c:/users/proxylist.txt")

当您使用
Gemfile
时,您使用的是bundler。在脚本中,您需要包含
rubygems
bundler
,才能使其正常工作。试试这个

require 'rubygems'
require 'bundler/setup'

require 'linkedindata'

l = LinkedinData.new(1, "c:/users/proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)
您已经运行了
捆绑安装
,很抱歉不熟悉gemrat,因此不确定它能为您带来多少好处

如果您没有实际使用
bundler
,只需从上面的代码中删除
require'bundler/setup'
,您仍然需要在脚本中使用rubygems

在中,看起来gem本身在声明依赖项的方式和它所依赖的其他gem方面有点不一致。我似乎能够使其工作如下:

档案:

source 'https://rubygems.org'
gem 'linkedin-scraper'
gem 'linkedindata'
gem 'generalscraper'
gem 'uploadconvert'
gem 'docsplit'
gem 'crack'
gem 'pry'
gem 'activesupport'
gem 'selenium-webdriver'
它还显示,
linkedin scraper
需要作为
linkedin\u scraper
来使用,但不确定为什么会这样。所以编辑

{GEMPATH}/linkedindata-0.0.22/lib/linkedindata.rb
to
to
to
require'linkedin_scraper'
require'linkedin scraper'
相反,似乎可以让它工作

因此,通过上述更改和使用bundler

require 'rubygems'
require 'bundler/setup'
require 'linkedindata'
l = LinkedinData.new(1, "proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)

现在运行(我没有proxylist.txt,所以它会查找它,但不会再出现库错误)。

解决了一些错误,但我仍然得到:
C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedindata.rb:1:in
require':无法加载这样的文件——linkedin scraper(LoadError)来自C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedindata.rb:1:in
'来自C:/Users/test.rb:4:in
需要来自C:/Users/test.rb:4:in
嗯,gem似乎没有完全正确的依赖关系。您可以尝试添加
gem'linkedin scraper'
,但我在加载它时也遇到了问题,不知道为什么…好吧,看来gem本身有点破损,并且没有正确声明所有的依赖项。。将用我发现的内容进行编辑…就像你说的那样,非常有魅力!我的代理也冻结了。。。C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedindata-0.0.22/lib/linkedin.rb:6:in
”:未初始化常量linkedin::Profile::ProxyManager(NameError)从C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedin-0.0.22/lib/linkedin.rb:5:in
“从C:/Ruby22/lib/ruby/gems/2.2.0/gems/linkedin-0.0.22/lib/linkedin.rb:4:in
require'from linkedin.rb:4:in`.”。我不明白这个。。。
require 'rubygems'
require 'bundler/setup'

require 'linkedindata'

l = LinkedinData.new(1, "c:/users/proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)
source 'https://rubygems.org'
gem 'linkedin-scraper'
gem 'linkedindata'
gem 'generalscraper'
gem 'uploadconvert'
gem 'docsplit'
gem 'crack'
gem 'pry'
gem 'activesupport'
gem 'selenium-webdriver'
require 'rubygems'
require 'bundler/setup'
require 'linkedindata'
l = LinkedinData.new(1, "proxylist.txt", true, true)
searchTerms = ['First', 'Second', 'Third']
l.getByKeywords(searchTerms)