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

时间:2010-07-11 07:45:20

标签: ruby-on-rails ruby-on-rails-plugins paperclip

我正在使用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>

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

Paperclip.options[:command_path] = "/usr/bin"

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

5 个答案:

答案 0 :(得分:17)

安装以下软件包以使用imagemagick

1) apt-get install imagemagick
2) apt-get install libmagickwand-dev
3) gem install rmagick

我认为你错过了第二个。

答案 1 :(得分:16)

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

<%= `which convert` %>
<%= `echo $PATH` %>

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

# 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"

希望帮助-jerry

答案 2 :(得分:5)

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

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

答案 3 :(得分:2)

就我而言,在生产服务器(NGINX + Passenger)的环境文件下设置Paperclip命令路径选项不起作用。

我将它设置在paperclip.rb初始化文件中:

Paperclip.options[:command_path] = "/usr/bin/" if Rails.env.production?

答案 4 :(得分:1)

检查您是否通过

安装 imagemagick
 which convert

在你的控制台中。就我而言,结果如下:

$ which convert
/usr/bin/convert

然后我将以下行添加到 config / environments / development.rb ,它告诉Paperclip在哪里可以找到Imagemagick

Paperclip.options[:command_path] = "/usr/local/bin/"