42

写真をアップロードすると、モデルが検証に失敗し、検証がなくてもエラーになり、次のエラーが返されます。

/tmp/stream20100103-13830-ywmerx-0 is not recognized by the 'identify' command. and     
/tmp/stream20100103-13830-ywmerx-0 is not recognized by the 'identify' command.

アップロードから画像処理を削除したため、これは ImageMagick とは関係がないと確信しています。また、.txt ファイルなどのさまざまな MIME タイプをアップロードしようとしました。

さらに、うまくいくかもしれないものを見つけました。ブログ投稿では、私の環境 (この場合は development.rb) に以下を配置すると主張しています。

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

14 に答える 14

49

これはImageMagickに関連しています。オプションは、がインストールされcommand_pathている場所を指す必要がありますidentify。コマンドラインから、これを。で判別できますwhich identify

$ which identify
/some/path/to/identify

その後、command_pathそのパスに設定します(でconfig/environments/development.rb):

Paperclip.options[:command_path] = "/some/path/to"
于 2010-01-03T21:45:26.813 に答える
15

これは、かなり古いバージョンPaperclip(バージョン 2.4.x など) を、互換性のない新しいバージョンのCocainegem と一緒に使用することによっても発生する可能性があります。

于 2012-11-15T00:05:41.863 に答える
6

次のことを行うことでこれを解決できました。

brew uninstall imagemagick
brew install imagemagick
于 2012-09-04T22:24:14.630 に答える
4

これは、OS X を Lion にアップグレードしたときに起こりました。

それを解決した...

  • abrew listを実行して、持っているすべてのパッケージを表示し、これをどこかに保存します

  • 自作のアンインストール (このページの「アンインストール」を参照してくださいhttps://github.com/mxcl/homebrew/wiki/Installation )

  • 通常の自作を再インストールします

    ruby -e "$(curl -fsSL https://raw.github.com/gist/323 ​​731 )"

  • あなたが持っている他のすべてのパッケージbrew install ghostscript brew install imagemagickなどを再インストールする

Ghostscript を再インストールする前に、ここにある提案を適用する必要があったことに注意してください: https://github.com/mxcl/homebrew/issues/6381

brew edit ghostscript

def patches次に、ブロックを Ghostscript クラスの一番下に追加します。

class Ghostscript < Formula
    .... existing code here ....

    def patches
        { :p0 => 'http://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/print/ghostscript/patches/patch-ak' }
    end
end 

上記のパッチは、これを読むまでにマージされている可能性があります。

その後、imagemagick は再び jpeg を正しく検出しました。

TL;DR homebrew、ghostscript (Lion のパッチ付き)、および imagemagick を完全にアンインストールして再インストールします

于 2011-07-23T23:10:45.080 に答える
3

私はbrew、Linkをインストールすることで動作しました

そして、私は次のように入力しました:

brew install imagemagick

それとその後

gem install rmagick

次に、environment/development.rb と initialize/paperclip.rb に手動で入力したオプション パス (Paperclip.options[:command_path] = "...") を削除しました。

gem ファイルに rmagick を追加しました。サーバーを再起動すると、魔法のように機能しました!

于 2011-03-22T22:13:57.880 に答える
2

これはhttp://arglebargle.posterous.com/path-environment-variable-for-rails-using-pasから機能しました

VirtualHost (またはパッセンジャーが設定されている場所) に次のようなものを入れます。

SetEnv PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/mysql/bin
于 2010-05-13T14:11:14.063 に答える
1

最新バージョンの名前にコロンを含むファイルをアップロードしようとした場合にも、このエラー メッセージが表示されます。

于 2012-10-09T21:11:47.847 に答える
1

通常、identify コマンドへのパスを .. で指定すると役立ちます。

Paperclip.options[:command_path] = "/your/path/to/identify"

..他の人が述べたように。ただし、バージョンの不一致がある場合にも問題が発生する可能性があります。最近、アプリケーションの Ruby-on-Rails バージョンを (Rails 3.1.10 に) 更新しましたが、paperclip gem を更新するのを忘れていました。ペーパークリップのバージョンを 2.8.0 に更新したところ、再び機能しました。

于 2013-01-16T10:41:59.853 に答える
1

あまり議論されていない可能性のある解決策をもう 1 つ追加するには: ldconfig.

追跡に1日半を費やしたのと同じ問題がありました。ソースから ImageMagick を適切に再インストールし、追加の png と jpeg のサポートを追加LD_LIBRARY_PATHDYLD_LIBRARY_PATH、環境変数に追加:command_pathして、本番環境の構成で Paperclip のオプションを設定しました。ImageMagick コマンドはコマンド ラインから機能しましたが、Paperclip の問題は解決しませんでした。

最後に、ついでにldconfig言及したのを見た後、気まぐれでそれを試してみましたが、うまくいきました。

sudo ldconfig

Apache やハードウェアを再起動することで同じことを達成できたかもしれませんが、自分でそれを行う立場にはありませんでした。

于 2010-03-19T19:36:21.760 に答える
0

あなたが Mac ユーザーで、これが OS を 10.8 にアップデートしてからのみ問題である場合は、ここで概説されているように、X11 の問題である可能性がありますhttp://support.apple.com/kb/HT5293

~/path/to/image を識別する

上記の修正をすべて試した後でも、うまくいきませんでした。http://xquartz.macosforge.org/landing/から XQuartz をインストールしたところ、再び動作するようになりました。

他の人も助けるかもしれません...

于 2013-04-23T10:22:03.727 に答える
0

ビデオをアップロードしようとしている場合、おそらく「identify」は作業を ffmpeg に委任しようとします。例

   identify Desktop/00-ScalingRails-Introduction.mp4      [alaa@Zero>/home/alaa]
   identify: delegate failed `"ffmpeg" -v -1 -vframes %S -i "%i" -vcodec pam -an -f rawvideo -y "%u.pam" 2> "%Z"' @ error/delegate.c/InvokeDelegate/1061.
   identify: unable to open image `/tmp/magick-XXHF4ImT.pam':  @ error/blob.c/OpenBlob/2498

この例では、ffmpeg をインストールすると、検証エラーのリストからエラー メッセージが削除されました。

于 2011-05-18T18:47:20.690 に答える
0

それも私に起こりました。上記のすべての方法を試しました。ペーパークリップのバージョンを変更するだけで、すべて正常に動作します。

于 2013-05-25T03:25:08.143 に答える
0

言うまでもなく、それが何を意味するかについて、このエラーメッセージを表示することもできます。

私の場合、Zip から書き込んでこのリソースを Paperclip に渡した後にフラッシュするのを忘れたため、ファイル サイズは 0 バイト長でした。

このスレッドから他の回答を読む前に、好みのビューアで実際にファイルを開くことができることを確認することは興味深いかもしれません:)

于 2012-12-12T13:54:34.080 に答える
0

OSX + MAMP + Passenger + Paperclip を使用しているときにこの問題が発生し、command_path を設定し、imagemagick が brew を介して適切にインストールされていることを確認し、passenger の一時ディレクトリとアップロード ディレクトリを書き込み可能なものに適切に設定しても、まだ機能しません!

解決策は、/Applications/MAMP/Library/bin/envvars にある MAMP の envvars ファイルを編集し、export DYLD_LIBRARY_PATH 行をコメントアウトすることでした。

つまり、次の行を変更します

export DYLD_LIBRARY_PATH

# export DYLD_LIBRARY_PATH

次に、MAMP を再起動し、画像が適切にアップロード/サイズ変更されたときの高揚感を感じてください。

于 2013-10-11T17:31:24.020 に答える