我无法在 ruby 中加载库
I can't load library in ruby
我在 Ruby 中加载库时遇到问题。
我想加载乱码、机械化、着色。
所以我首先安装了lib:
sudo gem install gibberish mechanize colorize
我在 Ubuntu 18.04 LTS 和 macOS 10.14.4 上都没有遇到错误。
我的脚本内容如下:
#!/usr/bin/env ruby
require 'mechanize'
require 'colorize'
require 'gibberish'
当我 运行 时,出现以下错误:
Traceback (most recent call last):
2: from test:3:in `<main>'
1: from /snap/ruby/167/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/snap/ruby/167/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- mechanize (LoadError)
此外,当我更改库的 require 顺序时,例如
#!/usr/bin/env ruby
require 'gibberish'
require 'mechanize'
require 'colorize'
我得到乱码错误。
我该如何解决?谢谢
你可以这样关注
第 1 步:创建一个文件夹并移动到这个新创建的文件夹。
$ mkdir my_folder
$ cd my_folder
第 2 步:在此文件夹中新建 Gemfile
并放入所需的宝石。
# my_folder/Gemfile
source "https://rubygems.org"
gem "colorize"
gem "mechanize"
gem "gibberish"
第 3 步:运行bundle install
安装所需的 gem。
第 4 步: 创建一个 ruby 文件并将您需要的代码放入其中 运行.
# my_folder/my_file.rb
require "mechanize"
require "colorize"
require "gibberish"
puts "Hello World"
到运行这个文件文件请使用ruby my_file.rb
。谢谢:-)
这是因为您正在使用 sudo
安装 gem,但 运行 使用 non-sudo 用户的脚本。如您所见,如果您 运行 sudo gem list --local
和 gem list --local
将给出不同的结果,因为 gem 使用 sudo
安装可能对用户不可用。
因此最好使用 ruby 版本管理器 rvm or rbenv,它允许为您的每个应用程序提供单独的环境。或者您可以使用 gem install --user-install <gemname>
来安装 gem 而无需 sudo。
我在 Ruby 中加载库时遇到问题。 我想加载乱码、机械化、着色。 所以我首先安装了lib:
sudo gem install gibberish mechanize colorize
我在 Ubuntu 18.04 LTS 和 macOS 10.14.4 上都没有遇到错误。
我的脚本内容如下:
#!/usr/bin/env ruby
require 'mechanize'
require 'colorize'
require 'gibberish'
当我 运行 时,出现以下错误:
Traceback (most recent call last):
2: from test:3:in `<main>'
1: from /snap/ruby/167/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/snap/ruby/167/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- mechanize (LoadError)
此外,当我更改库的 require 顺序时,例如
#!/usr/bin/env ruby
require 'gibberish'
require 'mechanize'
require 'colorize'
我得到乱码错误。 我该如何解决?谢谢
你可以这样关注
第 1 步:创建一个文件夹并移动到这个新创建的文件夹。
$ mkdir my_folder
$ cd my_folder
第 2 步:在此文件夹中新建 Gemfile
并放入所需的宝石。
# my_folder/Gemfile
source "https://rubygems.org"
gem "colorize"
gem "mechanize"
gem "gibberish"
第 3 步:运行bundle install
安装所需的 gem。
第 4 步: 创建一个 ruby 文件并将您需要的代码放入其中 运行.
# my_folder/my_file.rb
require "mechanize"
require "colorize"
require "gibberish"
puts "Hello World"
到运行这个文件文件请使用ruby my_file.rb
。谢谢:-)
这是因为您正在使用 sudo
安装 gem,但 运行 使用 non-sudo 用户的脚本。如您所见,如果您 运行 sudo gem list --local
和 gem list --local
将给出不同的结果,因为 gem 使用 sudo
安装可能对用户不可用。
因此最好使用 ruby 版本管理器 rvm or rbenv,它允许为您的每个应用程序提供单独的环境。或者您可以使用 gem install --user-install <gemname>
来安装 gem 而无需 sudo。