【问题标题】:Can't get awesome_print gem to work无法让 awesome_print gem 工作
【发布时间】:2013-02-22 02:32:47
【问题描述】:

awesome_print 看起来很漂亮,所以我想尝试一下。

我参加了我的一个项目并做了:

gem install awesome_print

它说安装了一个 gem,安装了文档等。

然后,当我在那个项目中时,我去我的 Rails 控制台试用它,但是当我按照他们的帮助文件所说的那样执行 require "awesome_print" 时,我得到一个“无法加载这样的文件”。

有没有人解决这个问题?

【问题讨论】:

  • 你需要将它添加到你的 Gemfile 中
  • 虽然我们安装了 gem,但仍然需要“添加到 gem 文件”?
  • 不,您不需要将它添加到您的 Gemfile 中。 selected answer 展示了一种使用 awesome_print 的方法,而无需将其添加到您的 Gemfile 中。我个人不想将 awesome_print 添加到我的 Gemfile 中,因为 a) 我希望能够为我系统上的任何 Ruby 项目利用 awesome_print,并且 b) 我不想将 gem 添加到特定项目的 Gemfile仅与我的个人喜好有关,实际上与项目运行的要求无关。

标签: ruby rubygems awesomeprint


【解决方案1】:

像这样将它添加到您的 Gemfile 中:

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

我将它添加到开发组,因为那是我唯一需要它的时候。 gem 没有任何其他 gem 依赖项,所以我经常将它添加到我的 Gemfile 中。

另外,将这两行添加到您的 ~/.irbrc 文件中,将 ap 设置为您的默认寻呼机:

require "awesome_print"
AwesomePrint.irb!

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

cannot load such file -- awesome_print

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

【讨论】:

    【解决方案2】:

    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
    

    【讨论】:

    • 如果您使用C:\&gt; appC:\&gt; app.requestC:\&gt; app.response 等,awesome_print 不起作用。它不影响方法调用。
    • 我的 Gemfile 中绝对有 awesome_print,它安装得很好,但是当我尝试在文件中使用它时,我得到了与原始 OP 相同的错误。
    【解决方案3】:

    安装它:

    $ gem install awesome_print
    

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

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

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

    require 'awesome_print'
    AwesomePrint.irb!
    

    重启你的shell!

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

    【讨论】:

      【解决方案4】:

      在你的机器上安装 gem

      gem install awesome_print
      

      获取安装路径

      gem which awesome_print
      

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

      *记住$LOAD_PATH 将保存你输入gem which awesome_print 得到的任何内容

      # ~/.irbc and ~/.pryrc
      
      $LOAD_PATH << "~/.asdf/installs/ruby/2.6.3/lib/ruby/gems/2.6.0/gems/awesome_print-1.8.0/lib/"
      require "awesome_print"
      AwesomePrint.irb!
      

      【讨论】:

      • 我可以gem install awesome_print。我可以从 irb 那里require 它。但我不能从我的脚本中require 它!几天前它还在工作!安装后,gem which awesome_print 失败并显示“错误:找不到 Ruby 库文件或共享库 awesome_print”。
      【解决方案5】:

      如果您想在 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。

      【讨论】:

      • 看起来很有希望,但我在 ~/.gem/ruby/2.3.0 中除了 cache 目录之外什么都没有,而且它没有 awesome_print。
      • 确保使用 ruby -v 检查您的 ruby​​ 版本。另外,我一直在使用 prygem install pry 代替语法高亮。
      【解决方案6】:

      就我而言,我在 PATH 之类的问题上苦苦挣扎,同时遗漏了一些明显的东西!

      # 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]
      #
      

      啊哈!版本粗鲁。我正在运行一个旧的红宝石。谢谢,苹果!

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

      问题解决了!

      可能我可以告诉brew 做一些事情来解决问题,但我很不耐烦。 :-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-15
        • 2014-09-09
        • 1970-01-01
        • 2020-02-23
        • 2014-12-26
        相关资源
        最近更新 更多