Загрузка изображений в виде скрепки в Rails - Paperclip :: CommandNotFoundError - PullRequest
24 голосов
/ 11 июля 2010

Я использую скрепку для загрузки изображений на рельсы.на моем компьютере с OSX он работал нормально, но теперь на моем веб-сервере я получаю эту ошибку:

[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 ]

17 голосов
/ 27 июля 2010

Установите следующие пакеты для работы с imagemagick

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

Я думаю, что вам не хватает второго.

16 голосов
/ 27 июля 2010

Если вы размещаете свое приложение на Passenger, помните, что у Passenger нет той же переменной $ PATH, что и у вашего вошедшего в систему пользователя.Хороший способ проверить, может ли Пассажир видеть команды 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

5 голосов
/ 12 июля 2010

Вы можете установить ImageMagick на свой компьютер.Эта проблема возникает из-за того, что она не находит некоторые методы.

Чтобы проверить, установлен ли ImageMagick на вашем компьютере, просто запустите команду 'convert' на терминале.

2 голосов
/ 18 февраля 2014

В моем случае настройка параметров пути команды Paperclip в файле среды для производственного сервера (NGINX + Passenger) не работала.

Вместо этого я установил его в файле инициализатора paperclip.rb:

Paperclip.options[:command_path] = "/usr/bin/" if Rails.env.production?
1 голос
/ 04 июля 2011

Проверьте, установлен ли imagemagick , запустив

 which convert

в вашей консоли. В моем случае результат был следующим:

$ which convert
/usr/bin/convert

Затем я добавляю следующую строку в config / environment / development.rb , которая сообщает Paperclip, где найти Imagemagick

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