【问题标题】:Paperclip Error回形针错误
【发布时间】:2009-10-07 18:27:12
【问题描述】:

我的 development.log 中出现以下错误

[paperclip] 处理时收到错误:#<:notidentifiedbyimagemagickerror:>

我用谷歌搜索了这个错误,我发现很多人通过添加这一行来解决这个问题 Paperclip.options[:command_path] = "/usr/local/bin"

但是,即使添加了该行,我仍然会遇到相同的错误!我已经尝试了所有可能的方法!

任何帮助将不胜感激!

问候,

普尼特

【问题讨论】:

  • 您使用的是什么操作系统? /usr/local/bin 仅在基于 unix 的系统上才有意义。

标签: ruby-on-rails paperclip


【解决方案1】:

Paperclip.options[:command_path] 设置用于 ImageMagick 可执行文件的位置(在本例中为标识)。尝试运行which identify 并将选项设置为返回的目录。如果该命令没有返回任何内容,请确保 ImageMagick 已正确安装。

【讨论】:

  • 您好,谢谢您的回复。哪个标识返回 /usr/local/bin 我还注意到一些奇怪的东西。路径 /tmp/stream28514-0 无效。所以文件没有被保存。有谁知道为什么会这样?
  • 回形针应在处理完文件后将其删除。您可以尝试从命令行运行识别吗?我最近升级 ImageMagick 时遇到了类似的问题,后来忘记运行 ldconfig。
【解决方案2】:

这对我有用...

我卸载了我从官方网页安装的 imagemagick。 我从 sudo apt-get install imagemagick 重新安装了它

然后我确实写了 Paperclip.options[:command_path] = "to/correct/path"

这里的问题是......

当我运行“which identify”时,路径似乎是“usr/local/bin/identify” 这意味着我们应该将路径“usr/local/bin”作为我的路径。

但它没有工作!

我惊奇地发现我的身份也在“usr/bin”路径中。所以我改变了: "usr/local/bin" 到 "usr/bin"

仅此而已!

【讨论】:

  • 我已经安装了它,但是通过brew upgrade ImageMagick 重新安装它为我修复了它。甚至不需要command_path 选项
【解决方案3】:

这意味着它无法在您在Paperclip.options[:command_path](在您的情况下为/usr/local/bin)中指定的位置找到ImageMagick 的可执行文件identify

这通常是由两个原因引起的:

  1. 可能是您实际上没有安装 ImageMagick。
    • 解决方案:安装它:
      • 对于 MAC:sudo port install ImageMagick(用于安装二进制版本)
      • 对于 UBUNTU:sudo sudo apt-get install imagemagick
  2. 可能是您安装 ImageMagick 的位置不是/usr/local/bin,而是其他位置。

    • 解决方案:找到它的安装位置,或者通过命令:

      which identify(如果该标识在当前 PATH 中,则应该如此)

    或通过文件系统进行原始查找:

    find / -name identify

无论如何,这些文件在 Ubuntu 中的通常位置应该是 /usr/bin

【讨论】:

    【解决方案4】:

    有两个可能的问题:

    1. Image Magick 未安装或损坏
    2. Paperclip 找不到 Image Magick

    让我们一次拿一个:

    1.检查您是否安装了 Image Magick 并且它正在工作

    类型:

    identify 
    

    在命令行,它应该可以工作。如果找不到或无法正常工作,请安装 Image Magick。这解决了吗?如果没有,请继续:

    2。帮助 Paperclip 找到 Image Magick

    类型:

    which identify
    

    在命令行获取识别命令的路径。现在,在 production.rb 中,将以下行添加到配置块中:

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

    重启你的服务器。那应该可以解决它。

    【讨论】:

      【解决方案5】:

      usr/bin 为我工作(Fedora 14 核心)

      【讨论】:

        【解决方案6】:

        尝试在命令行中运行 identify 命令,看看是否会出现一些错误消息。我发现我的服务器缺少一些委托库。

        identify example.jpg
        

        【讨论】:

          猜你喜欢
          • 2013-02-27
          • 2012-07-10
          • 2014-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-02
          相关资源
          最近更新 更多