305

PILは私のシステムでJPEGをサポートしています。

アップロードを行うたびに、コードが次のように失敗します。

File "PIL/Image.py", line 375, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available

どうすればこれを解決できますか?

4

15 に答える 15

493

libjpeg-devは、pillow(またはPIL)を使用してjpegを処理できるようにする必要があるため、インストールしてから、pillowを再コンパイルする必要があります。また、Ubuntu14.04ではlibjpeg8-devが必要なようです。

まだPILを使用している場合は、最近は枕を使用する必要があります。そのため、最初pip uninstall PILにこれらの手順に従って切り替える前に、またはPILを使い続ける正当な理由がある場合は、以下の「枕」を「PIL」に置き換えてください。 )。

Ubuntuの場合:

# install libjpeg-dev with apt
sudo apt-get install libjpeg-dev
# if you're on Ubuntu 14.04, also install this
sudo apt-get install libjpeg8-dev

# reinstall pillow
pip install --no-cache-dir -I pillow

それでも問題が解決しない場合は、64ビットまたは32ビットのUbuntuを使用しているかどうかに応じて、以下のいずれかを試してください。

Ubuntu x64の場合:

sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib

またはUbuntu32ビットの場合:

sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib/
sudo ln -s /usr/lib/i386-linux-gnu/libfreetype.so.6 /usr/lib/
sudo ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib/

次に枕を再インストールします。

pip install --no-cache-dir -I pillow

(コメントからのフィードバックを含めるように編集します。これは32ビットでは異なることを指摘してくれたCharles Offenbacherと、の使用を提案してくれたt-martに感謝します--no-cache-dir)。

于 2012-04-11T16:22:59.377 に答える
64

OSXの場合は、次のバイナリを使用してlibpngとlibjpegをシステム全体にインストールしました。

OSX用のlibpng&libjpeg

(virtualenvのpipを介して)すでにPILをインストールしているので、次のコマンドを実行しました。

pip uninstall PIL
pip install PIL --upgrade

これでdecoder JPEG not availableエラーは解決しました。

更新(4/24/14)

新しいバージョンのpipでは、外部ソースからライブラリ(PILを含む)をダウンロードするために追加のフラグが必要です。次のことを試してください。

pip install PIL --allow-external PIL --allow-unverified PIL

追加情報については、次の回答を参照してください。pip install PIL dont install into virtualenv

更新2

OSX Mavericksの場合は、以下の@RicardoGonzalesコメントARCHFLAGSとしてフラグを設定することをお勧めします。

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install PIL --allow-external PIL --allow-unverified PIL
于 2012-10-30T16:32:25.883 に答える
29

これが私のために働いた唯一の方法です。パッケージのインストールとPILの再インストールは機能しませんでした。

ubuntuで、必要なパッケージをインストールします。

sudo apt-get install libjpeg-dev

libfreetype6 libfreetype6-dev zlib1g-dev(他のデコーダーを有効にするためにインストールすることもできます)。

次に、PILを枕に置き換えます。

pip uninstall PIL
pip install pillow
于 2013-06-04T11:36:37.593 に答える
22

以下はubuntu12.04で動作します:

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

「-JPEGsupportavaliable」が表示された場合、それは機能することを意味します。

ただし、jpeg画像を編集しても機能しない場合は、Pythonパスを確認してください。私のPythonパスが見つからなかったので、このファイルに次のコードを追加して/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/編集します。~/.bashrc

編集:export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/

そして、ついに、それは動作します!

于 2013-06-04T02:03:19.913 に答える
17

Fedora 17では、インストールしてからlibjpeg-devel再インストールする必要がありましたPIL

sudo yum install --assumeyes libjpeg-devel
sudo pip-python install --upgrade PIL
于 2013-02-03T17:35:30.357 に答える
14

Roloの答えは素晴らしいですが、pipキャッシュ(pip 7で導入)をバイパスしてPillowを再インストールする必要がありました。そうしないと、正しく再コンパイルされません!!! コマンドは次のとおりです。

pip install -I --no-cache-dir -v Pillow

ログを読み取ると、枕が適切に構成されているかどうかを確認できます。

PIL SETUP SUMMARY
    --------------------------------------------------------------------
    version      Pillow 2.8.2
    platform     linux 3.4.3 (default, May 25 2015, 15:44:26)
                 [GCC 4.8.2]
    --------------------------------------------------------------------
    *** TKINTER support not available
    --- JPEG support available
    *** OPENJPEG (JPEG2000) support not available
    --- ZLIB (PNG/ZIP) support available
    --- LIBTIFF support available
    --- FREETYPE2 support available
    *** LITTLECMS2 support not available
    *** WEBP support not available
    *** WEBPMUX support not available
    --------------------------------------------------------------------

ご覧のとおり、以前はapt(libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)を介して必要なライブラリをインストールしたため、jpg、tiffなどのサポートが有効になっています。

于 2015-06-13T18:16:02.987 に答える
12

Mac OS X Mavericks(10.9.3)では、次のようにしてこれを解決しました。

brewによるlibjpegのインストール(パッケージ管理システム)

brew install libjpeg

枕を再インストールします(私はPILの代わりに枕を使用します)

pipinstall-I枕

于 2014-06-05T20:16:19.883 に答える
11
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev

これらをインストールし、ソースからコンパイルしたため、何らかの理由で機能しなかったため、必ずpipを使用してPILをインストールしてください。

于 2014-11-05T11:09:25.737 に答える
9

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

結局、必要なのは再インストールだけでしたPillow

sudo pip uninstall Pillow
sudo pip install Pillow
于 2014-08-20T13:34:07.423 に答える
3

私はzeantsoiの投稿にコメントするには初心者です;(。だからここで彼は10.9.1のOSXで解決するために私がする必要があったことを

IOError:デコーダーjpegは利用できません

1)Xcodeツールをインストールします(ターミナルを開いて実行します: xcode-select --install)-この投稿から引用:Mac OSX10.9以降はPILをインストールできません

2)次のリンクからlibpngおよびlibjpegパッケージ(コンボインストーラー)をインストールします:http://ethan.tira-thompson.com/Mac_OS_X_Ports.html

3)再起動します(必須かどうかはわかりません)

4)実行時にPILを再インストールしますpip install -I PIL(問題が発生する前に最初にPILをインストールしたため)

この助けを願って、もっと混乱しないでください...

_oho

于 2014-02-28T09:27:19.743 に答える
2

この質問はかなり前に投稿されたもので、ほとんどの回答もかなり古いものです。したがって、これを理解するために何時間も費やしたとき、何も機能せず、この投稿のすべての提案を試しました。

DjangoアバターフォームでJPGをアップロードしようとすると、まだ標準のJPEGエラーが発生していました。

raise IOError("decoder %s not available" % decoder_name)
OSError: decoder jpeg not available

次に、Ubuntu 12.04のリポジトリを確認し、の追加パッケージに気づきましたlibjpeg。これらをインストールすると、問題は解決しました。

sudo apt-get install libjpeg62 libjpeg62-dev

これらをインストールすると、、、およびが削除さlibjpeg-devlibjpeg-turbo8-devますlibjpeg8-dev

これが2015年以降の誰かに役立つことを願っています!

乾杯

于 2015-06-05T18:55:43.657 に答える
1

ここでも同じ問題がありますが、PILではなくPillowを使用していることを除けばJPEG support available、まだ問題が発生しています。IOError: decoder/encoder jpeg not available

上記のすべてとそれ以上を試しましたが、sudo pip install時間も経ってから、と組み合わせて使用​​すると期待どおりに機能しないことに気付きましたvirtualenv。愚かな私。

を使用すると、virtualenvがアクティブ化されていないsudo新しいシェルでコマンドが効果的に起動されます(これについての私の理解は完全には正しくない可能性があります)。つまり、パッケージは代わりにグローバル環境にインストールされます。(これは物事を台無しにしました、私は枕の2つの異なるインストールを持っていたと思います。)

私は物事をクリーンアップし、ユーザーをrootに変更し、virtualenvに再インストールしましたが、これで動作します。
うまくいけば、これは誰かを助けるでしょう!

于 2013-09-16T20:02:55.343 に答える
1

Fedoraの場合

前提条件を
sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
インストールする今すぐPillowをインストールする

sudo pip install pillow

注-libjpegおよびzlibの場合、Fedora / CentOS /RedHatにlibjpeg-develおよびzlib-develパッケージをインストールしています。

于 2016-04-13T10:07:20.600 に答える
0

まず、Pythonをアンインストールするだけでなく、隠しフォルダーuser / appData内のPythonフォルダーを削除する必要がありました(これは大きな頭痛の種でした)。次に、WinPythonディストリビューションをインストールしました:http ://code.google.com/p/winpython/これにはPILが含まれています

于 2013-02-05T22:51:22.017 に答える
0

Mac OS Mountain Lionを使用している場合は、zeantsoiの回答に従いましたが、機能しません。

私はついにこの投稿の解決策に行き着きました:http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/

今、私はjpegのスクリプトをうまく実行しています!

于 2013-07-24T20:51:06.820 に答える