web-dev-qa-db-ja.com

Django写真アプリのチュートリアルに従うと、デコーダーJPEGが利用できないというエラーが発生します

イメージのアップロードを含むDjangoチュートリアルに従っていて、この問題が発生しました。PIL、libjpeg、およびlibfreetype6を数回インストールして再インストールしようとしましたが、これまでのところ何も機能していないようです。私は解決策を見つけるために数時間を費やしましたが、この時点で非常にイライラしています。助けてください。

MacにPILを再インストールした後のselftest.pyの結果は次のとおりです。

PIL 1.1.6 BUILD SUMMARY
--------------------------------------------------------------------
version       1.1.6
platform      darwin 2.7.3 (v2.7.3:70274d53c1dd, Apr  9 2012, 20:52:43)
              [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
--------------------------------------------------------------------
--- TKINTER support ok
*** JPEG support not available
--- ZLIB (PNG/Zip) support ok
*** FREETYPE2 support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

To check the build, run the selftest.py script.
rrdhcp-10-32-44-157:Imaging-1.1.6 pfg$ python selftest.py
*****************************************************************
Failure in example: _info(Image.open("Images/lena.jpg"))
from line #24 of selftest.testimage
Exception raised:
Traceback (most recent call last):
  File "./doctest.py", line 499, in _run_examples_inner
    exec compile(source, "<string>", "single") in globs
  File "<string>", line 1, in <module>
  File "./selftest.py", line 22, in _info
    im.load()
  File "PIL/ImageFile.py", line 180, in load
    d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
  File "PIL/Image.py", line 375, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
1 items had failures:
   1 of  57 in selftest.testimage
***Test Failed*** 1 failures.
*** 1 tests of 57 failed.
14
entrepaul

同様の経験につながるPILのいくつかのケースがあります。を使用してvirtualenvからPILをインストールした場合

pip install PIL

次に、libjpeg、libzのdevバージョンを以前にインストールしておく必要があります。あなたがUbuntuボックスを使用していると仮定すると、

pip uninstall PIL
apt-get install libjpeg-dev zlib1g-dev libpng12-dev
pip install PIL

十分なはずです。 PILの代わりに Pillow をインストールすることもできます。これは、setuptoolsでより適切に機能し、virtualenvにインストールできます。

42
Steve K

私はこれが私にとってうまくいったことを発見しました:

pip uninstall PIL
pip install Pillow

次に、サーバーを再起動しました。

kill -HUP XXX

ここで、[〜#〜] xxx [〜#〜]は、サーバープロセスのプロセスIDです。

7
Hawkz

私はすでにPillowを使用していて、同じエラーが発生しました。他の人の提案に従ってlibjpegまたはlibjpeg-devをインストールしようとしましたが、(新しい)バージョンがすでにインストールされていると言われました。

結局、必要なのはPillowを再インストールすることだけでした。

Sudo pip uninstall Pillow
Sudo pip install Pillow
4
Dimitris

Fedoraを使用している場合は、pip installPillowを実行する前に実行してください。

yum install libjpeg-devel zlib1g-devel libpng12-devel
0
Joepreludian