• 締切済み

Image::Magickの呼び出し

前の質問が未解決なのですが、同時に進めていたこちらも行き詰ってしまったので恐縮ながら質問です。 Image::Magickを使用したく、以下のサイトを参考にインストールを試みました。 http://www.ss.iij4u.or.jp/~somali/web/_imagemagick.html (当方の環境は、Win XP Home/Apache 2.0をローカルサーバとし、ActivePerl 5.8.7を使用しています。) しかしページどおりに作業をしても、CGIでuse Image::Magickを書いたラインがエラーを返してきます。Can't locate Image/Magick.pm in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at 【CGIファイルの場所】 と返されていました。 解決のために以下のことを確認・実行しました。 (1)(インストーラではチェックを入れたのに)PerlMagickがPerlのsite/libにインストールされておらず、C直下のImageMagickフォルダのなかにありました。(アンインストールの上再インストールをしても同様) よってPerlMagickフォルダ内のReadMeに倣い、PPMからImageMagick.ppdを実行、インストールしました。PPMからquery *を実行すると、ちゃんとインストールされているのが確認できました。 (2)Magick.pmの入っているImageフォルダをC:\Perl\binフォルダの中にコピーし、サーバを再起動。(C:\Perl\binにパスが通っていることは、コマンドラインからPATHを実行して確認済。) それでもやはり動きません…。PCを再起動しても同様です。同じエラーが返ってきます。 モジュールを使うのは初めてで、CPANなどよくわからない部分も多いのですが、もうこれ以上何をしたらいいのかわかりません…。 何か解決策をご存知の方いらっしゃいましたらよろしくご教授下さい。

みんなの回答

  • papope
  • ベストアンサー率33% (8/24)
回答No.1

こんにちは。 windows環境みたいなので、はっきりしたことは言えませんけど、Linuxなどの場合の話をします。 そのメッセージはImage::Magickが@INCで示される場所に存在しない場合に表示されます。 @INCにPathを追加しても使えますが、メッセージに表示されているPathにImage::Magickのモジュールを 移動すれば動作するはずです。 メッセージを読むと分かるのですがCan't Locate Image/Magick.pm.... なんです。 要はモジュールが@incで示すPashに存在しないことを示しています。 ∴@INCで示すPathにモジュールを移動させれば動作するはずです。 (上記のメッセージだと C:/usr/local/lib または C:/usr/local/site/lib の中に必要ということです) 参考になれば幸いです。

lune07
質問者

お礼

papopeさんありがとうございます。 あれからも自分なりに試してみて、@INCにImage/Magickのあるフォルダパスを追加(unshift)してみたりもしたのですが、やはり読んではもらえないようです…。(しかも、unshiftしたのにエラーログには追加パスが表記されないという…。エラー行を外して@INCを出力してみるときちんと追加されているのに…。) そして結論から申しますと、教えていただいた方法でもダメでした。 C:usr/local/lib,C:usr/local/site/libのどちらにもMagick.pmを含むImageフォルダを入れてみたのですが エラーが返ってきます。 ただ、エラーの表記が変わりました。モジュールがロードできません、と言われているようです。 Can't locate loadable object for module Image::Magick in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at プログラムのある場所 Magick.pmを開いてみたところ、各種モジュールをuse、requireしているようなのですが、そのなかに5.002というものがrequireされていました。 5.002以外は全て@INCが記述するフォルダにあることを確認したので、5.002というものがロードできない、と言われていると思うのですが、CPANで試してもPPMで試してもそんなものないよーと言われています。5.002というのはモジュールではないのでしょうか、それとも何か違うことを意味しているエラーなのでしょうか…。 すみません、何かご存知の方いらっしゃいましたら引き続きご教授下さい。

すると、全ての回答が全文表示されます。

専門家に質問してみよう