如何从ruby脚本中安装rubygem并在之后需要这个gem?

问题描述 投票:2回答:1

我想做这样的事情:

begin
  require 'progressbar'
rescue LoadError => e
  puts "exception .. installing with gem"
  h = system 'gem install progressbar'
  puts "gem installed #{h}"
  require 'progressbar'
end
pbar = ProgressBar.new("test", 100)
100.times {sleep(0.1); pbar.inc}; pbar.finish

但很明显,如果您运行此代码段,则进度条宝石不可用。

ruby gem rubygems
1个回答
2
投票

我发现了这个讨论:https://www.ruby-forum.com/topic/131346显然,调用Gem.clear_paths解决了这个问题。总共:

begin
  require 'progressbar'
rescue LoadError => e
  puts "exception .. installing gem"
  h = system 'gem install progressbar'
  puts "gem installed #{h}"
  Gem.clear_paths
  require 'progressbar'
end
pbar = ProgressBar.new("test", 100)
100.times {sleep(0.1); pbar.inc}; pbar.finish
© www.soinside.com 2019 - 2024. All rights reserved.