Скрепка не работает с ImageMagick в Windows - PullRequest
0 голосов
/ 27 ноября 2010

Я только что загрузил RJCrop с github с использованием Paperclip с JCrop.Я попытался запустить его на моем Linux VPS, который работал очень хорошо, однако, когда я запускаю тот же проект на моей машине с Windows Vista x64, я получаю это исключение.

[paperclip] identify -format %wx%h 
'C:/Users/darth/AppData/Local/Temp/stream,3420,0.png[0]'

[paperclip] An error was received while processing: 
#<Paperclip::NotIdentifiedByImageMagickError: 
C:/Users/darth/AppData/Local/Temp/stream,3420,0.png 
is not recognized by the 'identify' command.>

[paperclip] identify -format %wx%h 
'C:/Users/darth/AppData/Local/Temp/stream,3420,0.png[0]'

[paperclip] An error was received while processing: 
#<Paperclip::NotIdentifiedByImageMagickError: 
C:/Users/darth/AppData/Local/Temp/stream,3420,0.png 
is not recognized by the 'identify' command.>

Идентификация находится в моем PATH

C:\>identify -versrubion
Version: ImageMagick 6.6.5-9 2010-11-15 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2010 ImageMagick Studio LLC
Features: OpenMP

И я также добавил конфигурацию

Paperclip.options[:command_path] = File.join("c:", "ImageMagick")

к environments/development.rb, но это не помогло.Я бегу Ruby 1.9.2p0.

1 Ответ

2 голосов
/ 27 ноября 2010

Я нашел проблему.

def shell_quote(string)
  return "" if string.nil? or string.blank?
  if self.class.unix?
    string.split("'").map{|m| "'#{m}'" }.join("\\'")
  else
    %{"#{string}"}
  end
end

Метод unix? определяется как

def self.unix?
  File.exist?("/dev/null")
end

, который, однако, с установленным Cygwin возвращает true, даже при запуске в обычном cmd (по крайней мере, для меня). Поэтому я просто переписал его, чтобы вернуть false, и он работает нормально. Я также отправил этот вопрос на скрепку на github

...