【问题标题】:`binding.pry` causing `ArgumentError: non-absolute home``binding.pry` 导致 `ArgumentError: non-absolute home`
【发布时间】:2019-06-04 20:52:30
【问题描述】:

在什么情况下pry 可能会因此错误而失败?

ArgumentError: non-absolute home

故障点代码:

puts "ENV['HOME']: #{ENV['HOME']}"
binding.pry

堆栈跟踪:

ENV['HOME']: localhost:3000                                                     
rake aborted!                                                                   
ArgumentError: non-absolute home                                                
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/pry_class.rb:105:in `expand_path'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/pry_class.rb:105:in `real_path_to'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/pry_class.rb:100:in `block in rc_files_to_load'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/pry_class.rb:100:in `map'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/pry_class.rb:100:in `rc_files_to_load'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/pry_class.rb:88:in `load_rc_files'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/pry_class.rb:148:in `initial_session_setup'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/pry_class.rb:184:in `start'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/pry-0.12.2/lib/pry/core_extensions.rb:43:in `pry'
/Users/bart_simpson/Projects/kewl_project/kewl_project/lib/tasks/kewl_project_tasks_helper.rb:104:in `block in import_energy_storage_facilities_from_state_task2'
/Users/bart_simpson/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/csv.rb:1764:in `each' 
/Users/bart_simpson/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/csv.rb:1142:in `block in foreach'
/Users/bart_simpson/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/csv.rb:1289:in `open' 
/Users/bart_simpson/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/csv.rb:1141:in `foreach'
/Users/bart_simpson/Projects/kewl_project/kewl_project/lib/tasks/kewl_project_tasks_helper.rb:100:in `import_energy_storage_facilities_from_state_task2'
/Users/bart_simpson/Projects/kewl_project/kewl_project/lib/tasks/kewl_project_tasks_helper.rb:69:in `import_energy_storage_facilities_via_state_task'
/Users/bart_simpson/Projects/kewl_project/kewl_project/lib/tasks/kewl_project.rake:215:in `block (2 levels) in <main>'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/task.rb:273:in `block in execute'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/task.rb:273:in `each'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/task.rb:273:in `execute'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/task.rb:214:in `block in invoke_with_call_chain'
/Users/bart_simpson/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/monitor.rb:226:in `mon_synchronize'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/task.rb:194:in `invoke_with_call_chain'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/task.rb:183:in `invoke'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:160:in `invoke_task'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:116:in `block (2 levels) in top_level'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:116:in `each'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:116:in `block in top_level'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:125:in `run_with_threads'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:110:in `top_level'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:83:in `block in run'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:186:in `standard_exception_handling'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/lib/rake/application.rb:80:in `run'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/bin/rake:23:in `load'     
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/bin/rake:23:in `<main>'   
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/bin/ruby_executable_hooks:24:in `eval'
/Users/bart_simpson/.rvm/gems/ruby-2.5.1@kewl_project/bin/ruby_executable_hooks:24:in `<main>'
Tasks: TOP => kewl_project:import_energy_storage_facilities                     

更新

我发现如果我在模块顶部的require 'pry' 之后立即发出binding.pry(即不在方法内但在任何方法范围之外),那么它可以工作,ENV['HOME'] 是我们所期望的:

/Users/bart_simpson

所以现在的问题是:ENV['HOME'] 是在哪里更改为localhost:3000??

【问题讨论】:

  • 我不熟悉这个错误,但在谷歌上发现了一些东西:fognet::ssh。建议打印ENV['HOME']echo $HOME 的内容。
  • 你能发布完整的堆栈跟踪吗?
  • 谢谢,我看到了 fognet:sshpry/issues/477ENV['HOME']localhost:3000。我添加了堆栈跟踪。
  • 更新了问题并提供了更多信息。

标签: ruby pry


【解决方案1】:

ENV['HOME'] 已被覆盖。

有人将ENV['HOME']='localhost:3000' 添加到我们的应用环境变量中。不好!

抱歉浪费了大家的时间!

【讨论】:

    猜你喜欢
    • 2016-05-16
    • 1970-01-01
    • 2012-05-17
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多