“要求”的问题在于,关键字未找到要加载的文件 [英] A problem with the "require" keyword not finding the file to load
问题描述
我在ruby中的require关键字有问题,我只是使用下载一个gem:
gem install thegem
当我尝试运行一个示例时,收到以下错误消息:
< internal:lib / rubygems / custom_require>:29:在'require'中:不需要加载这样的文件 -
./thegem/some / path(LoadError)
在问题代码中:
needs_to_load = a_class
需要gem / some / path /#{needs_to_load}
我是一个Ruby noob,学习了我的方式,但我不确定这是什么,谷歌搜索没有帮助,但透露它可能是由于需要一个相对路径,但将第二行更改为下列内容并没有帮助:
require./gem/some/path/# {needs_to_load}
我将RVM与以下ruby版本配合使用: ruby-1.9.2-head
。
(p。抱歉,如果在相关问题字段中我没有看到任何内容,请提问)
<编辑:追加'rvm info'和'gem的输出env'per Tin Man's request below]
$ gem env
RubyGems环境:
- RUBYGEMS VERSION:1.3.7
- RUBY VERSION:1.9.2(2010-08-18 patchlevel 0)[i386-darwin9.8.0]
- 安装目录:/Users/username/.rvm/ gems / ruby-1.9.2-head
- RUBY EXECUTABLE:/Users/username/.rvm/rubies/ruby-1.9.2-head/bin/ruby
- 可执行目录:/用户/用户名/.rvm/gems/ruby-1.9.2-head/bin
- RUBYGEMS平台:
- ruby
- x86-darwin-9
- 创业板路径:
- /Users/username/.rvm/gems/ruby-1.9.2-head
- /Users/username/.rvm/gems/ruby-1.9.2-head@global
- 创业板配置:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- 远程来源:
- http://rubygems.org/
$ rvm信息
ruby-1.9.2-head:
系统:
uname:达尔文macintosh 10.5.0达尔文内核版本10.5.0:星期五11月5日23:20:39 PDT 2010; root:xnu-1504.9.17〜1 / RELEASE_I386 i386
zsh:zsh 4.3.9(i386-apple-darwin10.0)
bash:GNU bash,版本3.2.48(1) - 发行版(x86_64-apple-darwin10.0 )
rvm:
版本:rvm 1.0.1 by Wayne E. Seguin(wayneeseguin@gmail.com)[http://rvm.beginrescueend.com/]
ruby:
解释器:ruby
版本:1.9.2p0
日期:2010-08-18
平台:i386- darwin9.8.0
patchlevel:2010-08-18 revision 29034
full_version:ruby 1.9.2p0(2010-08-18 revision 29034)[i386-darwin9.8.0]
家园:
gem:/Users/username/.rvm/gems/ruby-1.9.2-head
ruby:/Users/username/.rvm/rubies/ruby -1.9.2 -head
二进制文件:
ruby:/Users/username/.rvm/rubies/ruby-1.9.2-head/bin/ruby
irb:/ Users / username / .rvm / rubies / ruby-1.9.2-head / bin / irb
gem:/Users/username/.rvm/rubies/ruby-1.9.2-head/bin/gem
rake:/Users/username/.rvm/gems/ruby-1.9.2-head/bin/rake
环境:
路径:/ Users / username /.rvm/gems/ruby-1.9.2-head/bin:/Users/username/.rvm/gems/ruby-1.9.2-head@global/bin:/Users/username/.rvm/rubies/ruby- 1.9.2头/斌:/Users/username/.rvm/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/ SW /斌:/ SW / sbin目录中:/ opt / local / bin目录:的/ opt / local / sbin中中:/ opt / git的/ bin中:在/ usr / bin中:/ bin中:/ usr / sbin目录:/ sbin目录:在/ usr / local / bin目录:在/ usr / X11 / bin中:在/ usr /本地/ MySQL的/ bin:/ usr / X11R6 / bin
GEM_HOME:/Users/username/.rvm/gems/ruby-1.9.2-head
GEM_PATH:/Users/username/.rvm/ gems / ruby-1.9.2-head:/Users/username/.rvm/gems/ruby-1.9.2-head@global
BUNDLE_PATH:/Users/username/.rvm/ge ms / ruby-1.9.2-head
MY_RUBY_HOME:/Users/username/.rvm/rubies/ruby-1.9.2-head
IRBRC:/Users/username/.rvm/ ruby-1.9.2-head / .irbrc
RUBYOPT:
gemset:
$ b $如果你使用正常的 gem install somegem
,那么你应该能够 require'somegem'
,没有任何路径添加到gem的名称。 require_relative
对于安装在普通Ruby搜索路径之外的宝石和模块非常有用,例如您已经编写并嵌入到 lib $ b $>使用
gem env
并追加其输出通过编辑来回答原来的问题,这将帮助我们确定这是否是一个路径问题。因为您使用的是RVM,所以您的宝石路径应该指向您的〜/ .rvm
文件夹。如果你做了 rvm info
它也会给你路径信息,所以比较这两个命令的输出来看它们是否一致。
I have a problem with the "require" keyword in ruby, I just downloaded a gem using:
gem install thegem
And when I tried running an example I received the following error:
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load --
./thegem/some/path (LoadError)
In the code where the problem is:
needs_to_load = a_class
require "gem/some/path/#{needs_to_load}"
I'm a Ruby noob learning my way around and am not sure what this is, a google search didn't help but revealed that it may be due to needing a relative path, however changing the 2nd line to the following did not help:
require "./gem/some/path/#{needs_to_load}"
I'm using RVM with the following ruby version: ruby-1.9.2-head
.
(p.s. sorry if this has been asked before I didn't see anything for it in the related questions field)
[Edit: appending the output of 'rvm info' and 'gem env' per Tin Man's request below]
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i386-darwin9.8.0]
- INSTALLATION DIRECTORY: /Users/username/.rvm/gems/ruby-1.9.2-head
- RUBY EXECUTABLE: /Users/username/.rvm/rubies/ruby-1.9.2-head/bin/ruby
- EXECUTABLE DIRECTORY: /Users/username/.rvm/gems/ruby-1.9.2-head/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-9
- GEM PATHS:
- /Users/username/.rvm/gems/ruby-1.9.2-head
- /Users/username/.rvm/gems/ruby-1.9.2-head@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
$ rvm info
ruby-1.9.2-head:
system:
uname: "Darwin macintosh 10.5.0 Darwin Kernel Version 10.5.0: Fri Nov 5 23:20:39 PDT 2010; root:xnu-1504.9.17~1/RELEASE_I386 i386"
zsh: "zsh 4.3.9 (i386-apple-darwin10.0)"
bash: "GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)"
rvm:
version: "rvm 1.0.1 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]"
ruby:
interpreter: "ruby"
version: "1.9.2p0"
date: "2010-08-18"
platform: "i386-darwin9.8.0"
patchlevel: "2010-08-18 revision 29034"
full_version: "ruby 1.9.2p0 (2010-08-18 revision 29034) [i386-darwin9.8.0]"
homes:
gem: "/Users/username/.rvm/gems/ruby-1.9.2-head"
ruby: "/Users/username/.rvm/rubies/ruby-1.9.2-head"
binaries:
ruby: "/Users/username/.rvm/rubies/ruby-1.9.2-head/bin/ruby"
irb: "/Users/username/.rvm/rubies/ruby-1.9.2-head/bin/irb"
gem: "/Users/username/.rvm/rubies/ruby-1.9.2-head/bin/gem"
rake: "/Users/username/.rvm/gems/ruby-1.9.2-head/bin/rake"
environment:
PATH: "/Users/username/.rvm/gems/ruby-1.9.2-head/bin:/Users/username/.rvm/gems/ruby-1.9.2-head@global/bin:/Users/username/.rvm/rubies/ruby-1.9.2-head/bin:/Users/username/.rvm/bin:/Library/Frameworks/Python.framework/Versions/2.6/bin:/sw/bin:/sw/sbin:/opt/local/bin:/opt/local/sbin:/opt/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/mysql/bin:/usr/X11R6/bin"
GEM_HOME: "/Users/username/.rvm/gems/ruby-1.9.2-head"
GEM_PATH: "/Users/username/.rvm/gems/ruby-1.9.2-head:/Users/username/.rvm/gems/ruby-1.9.2-head@global"
BUNDLE_PATH: "/Users/username/.rvm/gems/ruby-1.9.2-head"
MY_RUBY_HOME: "/Users/username/.rvm/rubies/ruby-1.9.2-head"
IRBRC: "/Users/username/.rvm/rubies/ruby-1.9.2-head/.irbrc"
RUBYOPT: ""
gemset: ""
If you use a normal gem install somegem
, then you should be able to require 'somegem'
, without any path added to the name of the gem. require_relative
is useful for gems and modules that are installed somewhere out of the normal Ruby search paths, such as ones you've written and embedded in a lib
directory immediately below the calling script's directory.
Use gem env
and append its output to your original question by editing it, which will help us determine if it's a pathing issue. Because you are using RVM, your gem path should be pointing into your ~/.rvm
folder. If you do rvm info
it will also give you path info, so compare the output of those two commands to see if they are consistent.
这篇关于“要求”的问题在于,关键字未找到要加载的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!