ruby 无法让awesome_print gem工作

8gsdolmq  于 12个月前  发布在  Ruby
关注(0)|答案(6)|浏览(106)

awesome_print看起来像一个相当不错的宝石,所以我想尝试一下。
我去了我的一个项目,做了:

gem install awesome_print

它说安装了一个gem,安装了文档,等等。
然后,当我在那个项目中时,我去我的Rails控制台尝试它,但是当我像他们的帮助文件所说的那样执行require "awesome_print"时,我得到一个“无法加载这样的文件”。
有人能让它工作吗?

tmb3ates

tmb3ates1#

gem install会将gem代码放到您的计算机上,但是除非gem的源代码文件在您的加载路径上,否则require将无法找到它们。bundle exec查看最近的Gemfile.lock并将那里列出的所有gem的源代码添加到您的加载路径。Rails初始化包括让Bundler为你做这件事。
一种解决方案是将awesome_print添加到Gemfile。但是,这将导致应用程序具有awesome_print作为依赖项。或者,您可以在启动Rails控制台后手动将awesome_print库添加到您的加载路径,然后请求它:

$ rails c
> $LOAD_PATH << path/to/awesome_print-x.x.x/lib
> require 'awesome_print'
> ap {foo: {bar: {baz: :qux}}}

如果你使用RVM,路径可能是这样的:

~/.rvm/rubies/ruby-x.x.x-pxxx@your_gemset_name/gems/awesome_print-x.x.x/lib
cvxl0en2

cvxl0en22#

将其添加到您的Gemfile中,如下所示:

gem 'awesome_print', :require => 'ap'

我将其添加到开发组,因为这是我唯一需要它的时候。该gem没有任何其他gem依赖项,所以我经常将其添加到Gemfile中。
另外,在~/.irbrc文件中添加以下两行,将ap设置为默认分页器:

require "awesome_print"
AwesomePrint.irb!

请注意,如果你使用这个,但是,任何项目,其中awesome_print没有安装在其Gemfile将引发此错误时,你运行rails c

cannot load such file -- awesome_print

根据~/.irbrc文件中的其他内容,这可能会导致其他副作用,例如混淆提示符。为了避免这些,只需将这两行添加到该文件的最后。

mnowg1ta

mnowg1ta3#

安装:

$ gem install awesome_print

如果需要,请将其包含在GemFile中:

gem 'awesome_print', :require => 'ap'

将这行添加到文件~/.irbrc中:

require 'awesome_print'
AwesomePrint.irb!

重启shell!

只是一个提示:我这样做了,它没有立即工作,可能需要重新启动计算机.或者我只需要关闭所有shell选项卡并再次打开终端!

nc1teljy

nc1teljy4#

在你的机器上安装gem

gem install awesome_print

获取它已安装到的路径

gem which awesome_print

将以下配置添加到~/.irbrc~/.pryrc~/.rdbgrc。这将加载Awesome Print每当您激发IRBpry会话时。

  • 请记住,$LOAD_PATH将保存您输入gem which awesome_print所得到的任何内容
  • 编辑:* 将; nil添加到$LOAD_PATH行将防止其内容在每次执行文件时打印出来。
# ~/.irbc or ~/.pryrc or ~/.rdbgrc

$LOAD_PATH << "~/.asdf/installs/ruby/2.6.3/lib/ruby/gems/2.6.0/gems/awesome_print-1.8.0/lib/"; nil
require "awesome_print"
AwesomePrint.irb!
xfyts7mz

xfyts7mz5#

如果你想在没有Gemfile的情况下安装它,这是如何做到的:

$ gem install awesome_print

我遇到了一个问题,它安装成功,但它不在正确的目录。
在这种情况下,只需将其放入.bashrc中,这将设置加载路径:

export PATH="/home/user/.gem/ruby/2.3.0/bin:$PATH"
PATH="`ruby -e 'puts Gem.user_dir'`/bin:$PATH"

2.3.0替换为您正在使用的ruby版本。
user替换为您的 username,或者如果您使用的是vagrant,则替换为 vagrant
重新加载.bashrc或退出终端以重新加载更改,然后再次安装gem。

7kqas0il

7kqas0il6#

在我的情况下,我挣扎与路径等,而错过了一些明显的!

# which ruby
/usr/bin/ruby
# ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]
# locate bin/ruby
/usr/bin/ruby
/usr/local/Cellar/ruby/2.7.2/bin/ruby
/usr/local/opt/ruby/bin/ruby
# /usr/local/opt/ruby/bin/ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin17]
#

啊哈!版本不好。我在查一个旧的Ruby。谢谢你,苹果!

# sudo mv /usr/bin/ruby /usr/bin/ruby_2.3.7
# sudo ln /usr/local/opt/ruby/bin/ruby /usr/bin/ruby

解决了问题!
可能我可以告诉brew做一些事情来解决问题,但我没有耐心。:-)

相关问题