如何确保在独立脚本中安装ruby gem-第一次运行失败,第二次运行正常

如何确保在独立脚本中安装ruby gem-第一次运行失败,第二次运行正常,ruby,rubygems,Ruby,Rubygems,我是新来的,很明显我错过了一些东西。。。 我已经搜索过了,但没有找到与此完全匹配的东西 跑步: ruby 2.2.4p230(2015-12-16修订版53155)[i386-mingw32] 确保在独立脚本中安装非本机gem 第i条 第一次跑步时: C:\Users*****\Desktop*****\lib>ruby my_app.rb 无法将lib/figlet/fonts/bubble.flf的“\xC4”从ASCII-8BIT转换为UTF-8,跳过 无法将lib/figlet/font

我是新来的,很明显我错过了一些东西。。。 我已经搜索过了,但没有找到与此完全匹配的东西

跑步: ruby 2.2.4p230(2015-12-16修订版53155)[i386-mingw32]

确保在独立脚本中安装非本机gem

第i条

第一次跑步时

C:\Users*****\Desktop*****\lib>ruby my_app.rb

无法将lib/figlet/fonts/bubble.flf的“\xC4”从ASCII-8BIT转换为UTF-8,跳过

无法将lib/figlet/fonts/digital.flf的“\xC4”从ASCII-8BIT转换为UTF-8,正在跳过

无法将lib/figlet/fonts/l4me.flf的“\xB0”从ASCII-8BIT转换为UTF-8,正在跳过

无法将lib/figlet/fonts/pyramid.flf的“\x81”从ASCII-8BIT转换为UTF-8,跳过

无法将lib/figlet/fonts/rot13.flf的“\xC4”从ASCII-8BIT转换为UTF-8,正在跳过

无法将lib/figlet/fonts/term.flf的“\xC4”从ASCII-8BIT转换为UTF-8,正在跳过

无法将lib/figlet/fonts/tsalagi.flf的“\xC4”从ASCII-8BIT转换为UTF-8,跳过


C:/Ruby/lib/Ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in
require”:无法加载这样的文件--artii(LoadError)
来自C:/Ruby/lib/Ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in
require' 从app.rb:11:in
确保
从app.rb:14:in
'


第二次运行时


脚本按预期工作。

没有魔法-如果
spring
,此gem将在之后加载并保留在内存中

尝试添加

需要“artii”


在代码的开头

我认为您的问题是试图使用
gem this_name
语法。 这只是为了文件,
在脚本中坚持使用
require

问题是Gem会安装,但当再次遇到require时,它不会出现在列表中。这可能与require的rubygems别名有关。。。我不确定。我想如果有一个“刷新列表”,它会工作的。
def ensure_nn_gem(this_gem)
  begin
    gem this_gem
    rescue LoadError
      `gem install #{this_gem}`
    end
  require this_gem
end

ensure_nn_gem('artii')