【问题标题】:`rails s` says "`require': cannot load such file -- pty (LoadError)" in Windows RailsInstaller`rails s` 在 Windows RailsInstaller 中说“`require': cannot load such file -- pty (LoadError)”
【发布时间】:2016-06-28 01:50:35
【问题描述】:

我刚刚在我的 Windows 10 PC 上安装了 RailsInstaller。我无法运行rails srails g controller StaticPages home help

我还尝试按照this 相关 StackOverflow 问题的建议安装 zeus gem 来解决此问题,但没有成功。

宝石文件:

source 'https://rubygems.org'

gem 'rails',        '4.2.2'
gem 'sass-rails',   '5.0.2'
gem 'uglifier',     '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '4.0.3'
gem 'turbolinks',   '2.3.0'
gem 'jbuilder',     '2.2.3'
gem 'sdoc',         '0.4.0', group: :doc
gem 'pry-nav', group: [:development, :test]

group :development, :test do
  gem 'sqlite3',     '>= 1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end

group :test do
  gem 'minitest-reporters', '1.0.5'
  gem 'mini_backtrace',     '0.1.3'
  gem 'guard-minitest',     '2.3.1'
end

group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
end

错误:

rails s
c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console/slave.rb:1:in `require': cannot load such file -- pty (LoadError)
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console/slave.rb:1:in `<top (required)>'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console.rb:13:in `require'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console.rb:13:in `<top (required)>'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web-console.rb:1:in `require'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web-console.rb:1:in `<top (required)>'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:77:in `require'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:77:in `block (2 levels) in require'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `each'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `block in require'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `each'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `require'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/bundler-1.11.2/lib/bundler.rb:99:in `require'
        from c:/Sites/sample_app/config/application.rb:7:in `<top (required)>'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:78:in `require'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:78:in `block in server'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:75:in `tap'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:75:in `server'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.2.2/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
        from c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/railties-4.2.2/lib/rails/commands.rb:17:in `<top (required)>'
        from bin/rails:4:in `require'
        from bin/rails:4:in `<main>'

【问题讨论】:

    标签: ruby-on-rails ruby railsinstaller railsinstaller-windows


    【解决方案1】:

    回溯告诉我们 Web 控制台 gem 需要 Ruby 的 pty 库。不幸的是,PTYs (pseudo-terminals) 是 Windows 上不存在的 Unix/Linux 功能,因此 Ruby 库也不存在。

    您可以通过以下几种方式开始行动:

    • 如果您现在不关心 Web 控制台 gem,只需将其从 Gemfile 中删除即可。

    • 如果您确实需要 web-console gem,请尝试用这些 gem 替换 web-console:

      gem 'rubysl-pty', platforms: :ruby
      gem 'web-console-rails3', platforms: :ruby
      

      来源:a web-console Github issue

    【讨论】:

    • 我已删除网络控制台。现在我遇到了另一个错误。我应该更新这个问题还是提出新问题? c:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/tzinfo-1.2.2/lib/tzinfo/data_source.rb:182:in rescue in create_default_data_source':找不到时区数据源。 (TZInfo::DataSourceNotFound)`
    • 我会提出一个单独的问题。
    【解决方案2】:

    我通过以下步骤解决了这个问题:

    1. 首先检查你的Gemfile.lock,如果你在那里提到了bcrypt版本,那么你不需要在Gemfile中提到bcrypt版本。
    2. 如果 Gemfile.lock 中缺少 bcrypt 版本,则执行以下步骤: a) 宝石安装 bcrypt b) 打开您的 Gemfile 并粘贴“gem 'bcrypt', '~> 3.1.7'” c) 在控制台中运行命令:捆绑安装

    我希望按照上面给出的步骤可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2016-02-08
      • 2019-07-24
      • 2014-03-08
      相关资源
      最近更新 更多