【发布时间】:2021-03-15 01:04:56
【问题描述】:
我正在使用 prawn gem 来创建 pdf。因此,创建表需要使用单独的 prawn-table gem。
由于某种原因,我无法要求虾桌 gem,也不知道为什么。
结果是:
require': 无法加载此类文件 -- prawn-table (LoadError)
由于某种原因,无法加载 praw-table gem。 为什么不呢?
gem 存在于 gem env 路径中(见下文):
bundle info prawn
* prawn (2.4.0)
Summary: A fast and nimble PDF generator for Ruby
Homepage: http://prawnpdf.org
Path: /home/cb/.gem/ruby/2.6.6/gems/prawn-2.4.0
bundle info prawn-table
* prawn-table (0.2.2)
Summary: Provides tables for PrawnPDF
Homepage: https://github.com/prawnpdf/prawn-table
Path: /home/cb/.gem/ruby/2.6.6/gems/prawn-table-0.2.2
我这样称呼对虾生成器...
require 'prawn'
require 'prawn/measurement_extensions'
require 'prawn-table'
def generate_pdf(invoice, mode)
Prawn::Document.generate(invoice.file, margin_top: 0, page_size: 'A4',
info:
{...
导致:
invoicer generate --mode development
Traceback (most recent call last):
20: from ./bin/invoicer:4:in `<main>'
19: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require'
18: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:85:in `require'
17: from /home/cb/work/invoicer/lib/invoicer.rb:15:in `<top (required)>'
16: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `require'
15: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:299:in `load_dependency'
14: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `block in require'
13: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
12: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
11: from /home/cb/work/invoicer/lib/invoicer/invoice_process.rb:5:in `<top (required)>'
10: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `require'
9: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:299:in `load_dependency'
8: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `block in require'
7: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
6: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
5: from /home/cb/work/invoicer/lib/invoicer/generate_pdf.rb:4:in `<top (required)>'
4: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `require'
3: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:299:in `load_dependency'
2: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/activesupport-6.1.3/lib/active_support/dependencies.rb:332:in `block in require'
1: from /home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require'
/home/cb/.rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:148:in `require': cannot load such file -- prawn-table (LoadError)
我的 gem 环境看起来像这样:
RubyGems 环境:
- RUBYGEMS 版本:3.2.14
- RUBY 版本:2.6.6(2020-03-31 补丁级别 146)[x86_64-linux]
- 安装目录:/home/cb/.gem/ruby/2.6.6
- 用户安装目录:/home/cb/.gem/ruby/2.6.0
- RUBY 可执行文件:/home/cb/.rubies/ruby-2.6.6/bin/ruby
- GIT 可执行文件:/usr/bin/git
- 可执行目录:/home/cb/.gem/ruby/2.6.6/bin
- SPEC 缓存目录:/home/cb/.gem/specs
- 系统配置目录:/home/cb/.rubies/ruby-2.6.6/etc
- RUBYGEMS 平台:
- 红宝石
- x86_64-linux
- 宝石路径:
- /home/cb/.gem/ruby/2.6.6
- /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0
- 宝石配置:
- :update_sources => 真
- :详细 => 真
- :回溯 => 假
- :bulk_threshold => 1000
- 远程源:
- 外壳路径:
- /home/cb/.gem/ruby/2.6.6/bin
- /home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/bin
- /home/cb/.rubies/ruby-2.6.6/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
- /usr/local/games
- /snap/bin
- .
- bin
rails 6.1 load path
rails c
Loading development environment (Rails 6.1.3)
irb(main):001:0> $:
[
[ 0] "/home/cb/work/invoicer/lib",
[ 1] "/home/cb/work/invoicer/vendor",
[ 2] "/home/cb/work/invoicer/app/helpers",
[ 3] "/home/cb/work/invoicer/app/mailers",
[ 4] "/home/cb/work/invoicer/app/models",
[ 5] "/home/cb/.rubies/ruby-2.6.6/lib/ruby/gems/2.6.0/gems/actionview-6.1.3/lib",
[ 6] "/home/cb/work/invoicer",
[ 7] "/home/cb/.gem/ruby/2.6.6/gems/whenever-1.0.0/lib",
[ 8] "/home/cb/.gem/ruby/2.6.6/gems/web-console-4.1.0/lib",
[ 9] "/home/cb/.gem/ruby/2.6.6/gems/sqlite3-1.4.2/lib",
[10] "/home/cb/.gem/ruby/2.6.6/extensions/x86_64-linux/2.6.0-static/sqlite3-1.4.2",
[11] "/home/cb/.gem/ruby/2.6.6/gems/rails-6.1.3/lib",
[12] "/home/cb/.gem/ruby/2.6.6/gems/sprockets-rails-3.2.2/lib",
[13] "/home/cb/.gem/ruby/2.6.6/gems/sprockets-4.0.2/lib",
[14] "/home/cb/.gem/ruby/2.6.6/gems/railties-6.1.3/lib",
[15] "/home/cb/.gem/ruby/2.6.6/gems/thor-1.1.0/lib",
[16] "/home/cb/.gem/ruby/2.6.6/gems/rack-mini-profiler-2.3.1/lib",
[17] "/home/cb/.gem/ruby/2.6.6/gems/prawn-table-0.2.2/lib",
[18] "/home/cb/.gem/ruby/2.6.6/gems/prawn-2.4.0/lib",
[19] "/home/cb/.gem/ruby/2.6.6/gems/ttfunk-1.7.0/lib",
[20] "/home/cb/.gem/ruby/2.6.6/gems/pdf-core-0.9.0/lib",
[21] "/home/cb/.gem/ruby/2.6.6/gems/method_source-1.0.0/lib",
.
.
.
[93] "/home/cb/.rubies/ruby-2.6.6/lib/ruby/2.6.0",
[94] "/home/cb/.rubies/ruby-2.6.6/lib/ruby/2.6.0/x86_64-linux"
]
【问题讨论】:
-
看看this是否有帮助。
-
很遗憾没有。那篇文章似乎表明捆绑程序没有正确处理依赖项,但是,尝试强制依赖项的各种组合没有区别
标签: ruby-on-rails ruby ruby-on-rails-6 prawn