3

Macでローカルにdjangoにsorl.thumbnailを使用していて、PILに問題がありましたが、今日ようやくインストールできました-libjpegに問題がありました。

画像をアップロードして使用できるようになりましたが、sorl.thumbnail を使用してサイズを変更することはできません。

試してみると、次のエラーが表示されます。

Wrong JPEG library version: library is 80, caller expects 62

誰もがこれに対する良い解決策を知っていますか?

sorl が使用するものに libjpeg の以前のバージョンが必要なのか、それとも、さまざまな方法ですべての試みからまだ取り残されているもののゴースト インストールがあるのか​​ どうかはわかりません。

私は持っている :

  1. PIL 1.1.7
  2. libjpeg 8.

誰かがアプローチを知っていますか?

4

4 に答える 4

7

このエラーに遭遇し、その理由がわからない未来の人々のために、調査結果を投稿したいと思います。それを修正するための正確なコマンドは、OSX Lion インストールのマシンとは異なる可能性があるため、何が問題なのかについての一般的な理解を提供したいと考えています。

まず、潜在的な解決策で迷子になりやすいため、エラー メッセージが、、およびWrong JPEG library version: library is 80, caller expects 62の他の組み合わせである場合は正しいことを理解することが重要です。これらの番号は、libjpeg の互換性のないさまざまなバージョンに対応しています。ここには、動的にロードされる jpeg ライブラリと PIL (または Pillow) のインストールという 2 つの可動部分があります。エラー メッセージは、PIL インストールが libjpeg バージョン 6.2 のヘッダーでコンパイルされたが、実際の共有ライブラリをロードするときにバージョン 8.0 にリンクされていることを示しています。627080

修正は、必要なバージョンの libjpeg をダウンロード、ビルド、およびインストールすることです (OSX Lion では新しいバージョンの方が簡単にビルドできますが、どのバージョンでも構いません)。

 wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz
 tar xzf jpegsrc*
 cd jpeg-*
 ./configure
 make
 sudo make install

これにより、「/usr/local/」に 2 つの注目すべきファイルがドロップされます。すなわち/usr/local/lib/libjpeg.8.dylib/usr/local/include/jpeglib.h. あとは、インストール時にこれら 2 つのファイルを使用するように PIL (または Pillow) を取得するだけで済みます。これを行うためのより良い方法があることは知っていますが、ハック (PIL ドキュメントで推奨されているように) は、setup.pyインストールする前に PIL ディストリビューションのファイルを編集することです。ファイルの他の場所でさらにディレクトリ操作が必要になる場合がありますが、JPEG_ROOT = libinclude('/usr/local')の上部近くに設定するだけで済む場合があります。setup.py

パスをいじるときは、正しいライブラリにリンクされているかどうかをテストする前に、PIL が完全な再構築を行うことを確認する必要があります。次のようなコマンドを使用しrm -rf build && python setup.py installて、ライブラリが常にテスト中の現在のパスに新しくリンクされていることを確認しました。

とりとめのない回答で申し訳ありませんが、他のすべてのコピー アンド ペースト ソリューションを試しても、どれも機能しないのは非常にがっかりしました。願わくば、この回答により、少なくとも数人の人々が単純な解決策を求めて何時間も無駄にすることを防ぐことができます.

幸運を!

于 2012-05-10T04:56:05.990 に答える
0

If you have macports installed, you should do a:

$ sudo port selfupdate
$ sudo port install py27-pil

It's easier than the easy_install method since macports install the right dependencies.

于 2012-01-31T17:01:17.987 に答える