【问题标题】:Ruby 2.0.0p0 IRB warning: "DL is deprecated, please use Fiddle"Ruby 2.0.0p0 IRB 警告:“DL 已弃用,请使用 Fiddle”
【发布时间】:2013-03-23 18:23:21
【问题描述】:

我刚刚卸载了旧版本的 Ruby,删除了我所有的 gem (包括 Rails),并安装了 Ruby 2.0。换句话说,完全干净的重新安装。在启动 IRB 时,我收到了这条消息:

DL 已弃用,请使用 Fiddle

注意:我在 Windows 机器上。

这条消息是什么意思?

【问题讨论】:

  • 你的~/.irbrc文件的内容是什么?
  • 原谅我的无知,但是我在哪里可以找到这个文件?
  • @CodeGnome 请注意@effbot 在 Windows 机器上。据我所知,Windows 默认没有.irbrc
  • 您得到的warn 来自文件“Ruby200\lib\ruby\2.0.0\dl.rb”。当我启动 irbpry 时,我也明白了。
  • 这是一条写得很糟糕的消息。什么是深度学习?什么是小提琴?我为什么要改变?我该如何改变?

标签: ruby windows


【解决方案1】:

当您在 Windows 之上有 ruby 2.0.0p0 (2013-02-24) 时,您收到的消息很常见。

消息“DL is deprecated, please use Fiddle不是错误;这只是一个警告

来源是前段时间在dl.rb中引入的Deprecation notice for DL(见revisions/37910)。

在 Windows 上,lib/ruby/site_ruby/2.0.0/readline.rb 文件仍然需要 dl.rb,因此当您 require 'irb'(因为 irb 需要 'readline')或其他任何东西想要 require 'readline' 时,就会出现 警告消息 .

您可以使用您喜欢的文本编辑器打开readline.rb 并查找代码(靠近第 4369 行):

    if RUBY_VERSION < '1.9.1'
      require 'Win32API'
    else
      require 'dl'
      class Win32API
        DLL = {}

我们总是希望在 Ruby 的未来版本中解决此弃用问题。

编辑: 对于那些想深入了解 FiddleDL 的人,可以说他们的目的是动态链接外部库和 Ruby;您可以在 ruby​​-doc 网站上阅读有关 DLFiddle 的信息。

【讨论】:

  • @webRat 重新编辑帖子;我同意你的看法,rbrealine.rb 是由社区编辑的错误(我想)引入的。感谢您的关注!
  • 这一切听起来很不令人满意。无论如何,请注意下面来自 Msangle 的评论,“什么是小提琴?”
  • @Paul,在答案的最后两行,有两个链接可能你没见过:ruby-doc.org/stdlib-2.0.0/libdoc/fiddle/rdoc/Fiddle.htmlruby-doc.org/stdlib-2.0.0/libdoc/dl/rdoc/DL.html
  • 在我的 Windows 机器上,我在 C:\RailsInstaller\Ruby2.1.0\lib\ruby\site_ruby\2.1.0\ 找到了这些文件 rbreadline.rbreadline.rb。我将行从require 'dl' 更改为require 'fiddle'。没有更多警告。
  • 这行不通,因为存在依赖关系,恐怕,@Blairg23
【解决方案2】:

您可能想在

处注释掉 DL is deprecated, please use Fiddle 警告 C:\Ruby200\lib\ruby\2.0.0\dl.rb

因为这很烦人,而且你不是 irb/pry 或其他一些 gems 代码所有者

【讨论】:

  • 如果您在 Windows 上运行 vagrant up 时遇到此错误,可以在 C:\vagrant\embedded\lib\ruby\2.0.0dl.rb 找到此文件。
  • 谢谢@syj,我的地址是C:\HashiCorp\Vagrant\embedded\lib\ruby\2.0.0\dl.rb
  • C:\RailsInstaller\Ruby2.1.0\lib\ruby\2.1.0\dl.rb 第 8 行
【解决方案3】:

我在openshift.com 得到了这个决议。

分辨率:

此错误仅发生在 Ruby 2.0.0 版本的 Windows 机器上。 在我们正式支持 Ruby 2.0 之前,请降级到 Ruby 1.9。

在 Windows 上,您可以将 Ruby 1.9.3 与 2.0 一起安装。改变你的 %PATH% 到 c:\ruby193\ 或您之前安装的任何目录 安装 gem。

【讨论】:

  • 能否在 openshift.com 上另外提供解决方案的链接?
  • 有没有计划在不久的将来正式支持 ruby​​ 2.0?
  • @AlexanderVogt 现在引用了该解决方案。请参阅上面的编辑。
【解决方案4】:

消息“DL 已弃用,请使用 Fiddle”不是错误;这只是一个警告。
解决方案:
您可以通过 3 个简单的步骤忽略这一点。
步骤 1. 转到 C:\RailsInstaller\Ruby2.1.0\lib\ruby\2.1.0
第 2 步。然后找到 dl.rb 并使用任何在线编辑器(如 Aptana、sublime text 等)打开文件
步骤 3. 用 '#' 注释第 8 行,即 #warn "DL 已弃用,请使用 Fiddle"。
就是这样,谢谢。

【讨论】:

    【解决方案5】:

    当我想在 Windows 下做一个 thor 命令时,我自己遇到了这个问题。

    为了避免每次运行我的 thor 应用程序时都输出该消息,我在加载 thor 时暂时静音了警告:

    begin
      original_verbose = $VERBOSE
      $VERBOSE = nil
      require "thor"
    ensure
      $VERBOSE = original_verbose
    end
    

    这让我不必编辑第三方源文件。

    【讨论】:

    • 很酷的解决方案,它不需要更改其他人的代码。
    猜你喜欢
    • 1970-01-01
    • 2020-03-25
    • 2019-11-23
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 2015-03-23
    • 2019-07-09
    • 1970-01-01
    相关资源
    最近更新 更多