Rails中的Paperclip图像上传 - Paperclip :: CommandNotFoundError

Mar*_*rky 24 ruby-on-rails paperclip ruby-on-rails-plugins

我正在使用paperclip来处理图像上传到rails.它在我的开发OSX机器上工作正常,但现在我的Web服务器上出现此错误:

[paperclip] /Users/marky/bin/identify '-format' '%wx%h' '/tmp/stream,16451,2.JPG[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::CommandNotFoundError: Paperclip::CommandNotFoundError>
[paperclip] /Users/marky/bin/identify '-format' '%wx%h' '/tmp/stream,16451,2.JPG[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::CommandNotFoundError: Paperclip::CommandNotFoundError>
Run Code Online (Sandbox Code Playgroud)

现在我明白了原因; 识别实际上是/ usr/bin/not/Users/marky/bin /来自我的开发机器.我有:

Paperclip.options[:command_path] = "/usr/bin"
Run Code Online (Sandbox Code Playgroud)

在我development.rb,但我仍然得到错误.我不知道如何解决这个问题,任何人都可以帮忙吗?

MKu*_*mar 17

安装以下软件包以使用imagemagick

1) apt-get install imagemagick
2) apt-get install libmagickwand-dev
3) gem install rmagick
Run Code Online (Sandbox Code Playgroud)

我想你错过了第二个.

  • apt-get install imagemagick就足够了 (3认同)

Jer*_*ung 16

如果您使用Passenger托管应用程序,请记住Passenger没有与登录用户相同的$ PATH变量.检查Passenger是否可以看到ImageMagick命令的好方法是将其添加到您的某个erb模板中:

<%= `which convert` %>
<%= `echo $PATH` %>
Run Code Online (Sandbox Code Playgroud)

并在终端中运行相同的命令来比较结果.另一种可能性是ImageMagick无法找到它需要的库.在这种情况下,您可能需要导出另一个变量以让ImageMagick知道lib的位置:

# my config/environments/development.rb
Paperclip.options[:command_path] = "DYLD_LIBRARY_PATH='/Users/jch/Library/ImageMagick-6.6.3/lib' /Users/jch/Library/ImageMagick-6.6.3/bin"
Run Code Online (Sandbox Code Playgroud)

希望有所帮助 - 杰里

  • 将Paperclip.options [:command_path]添加(或更改)到环境/ development.rb后,确保重新启动服务器 (2认同)

Sac*_*n R 5

您可以在计算机上安装ImageMagick.产生这些问题是因为它找不到某些方法.

要检查您的机器上是否安装了ImageMagick,只需在终端上运行'convert'命令即可.