私のシステムではPILはJPEGをサポートしています。
アップロードを行うたびに、コードが失敗します:
File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
どうすればこれを解決できますか?
私のシステムではPILはJPEGをサポートしています。
アップロードを行うたびに、コードが失敗します:
File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
どうすればこれを解決できますか?
回答:
libjpeg-devは、枕(またはPIL)でjpegを処理できるようにするために必要です。そのため、それをインストールしてから枕を再コンパイルする必要があります。また、Ubuntu 14.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ビットUbuntuと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
またはUbuntu 32ビットの場合:
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に感謝します--no-cache-dir
。
pip install
最初は非常に時間がかかりましたが、その後のアンインストールと(再)インストールは疑わしいほど迅速でした。とにかく、上記の方法は実行するまで機能しませんでしたpip install --no-cache-dir pillow
。幸運を!
OSXを使用している場合は、次のバイナリを使用してlibpngとlibjpegをシステム全体にインストールしました。
(virtualenvのpipを使用して)PILを既にインストールしているため、次のコマンドを実行しました。
pip uninstall PIL
pip install PIL --upgrade
これでdecoder JPEG not available
エラーが解決しました。
更新(14/4/14):
新しいバージョンのpipでは、ライブラリ(PILを含む)を外部ソースからダウンロードするために追加のフラグが必要です。以下を試してください:
pip install PIL --allow-external PIL --allow-unverified PIL
詳細については、次の回答を参照してください:pip install PILは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
これは私のために働いた唯一の方法です。パッケージのインストールとPILの再インストールが機能しませんでした。
ubuntuで、必要なパッケージをインストールします。
sudo apt-get install libjpeg-dev
(libfreetype6 libfreetype6-dev zlib1g-dev
他のデコーダーを有効にするためにインストールすることもできます)。
次に、PILを枕に置き換えます。
pip uninstall PIL
pip install pillow
pip install pillow --upgrade
。
以下はubuntu 12.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
「-JPEG support available」が表示された場合、それは機能することを意味します。
ただし、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/
そして、ついに、うまくいきました!!
Fedora 17では、インストールlibjpeg-devel
してから再インストールする必要がありましたPIL
:
sudo yum install --assumeyes libjpeg-devel
sudo pip-python install --upgrade PIL
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
--------------------------------------------------------------------
jpg、tiffなどのサポートが有効になっていることがわかります。以前にapt(libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)を介して必要なライブラリをインストールしたためです。
私は初心者なのでzeantsoiの投稿にコメントすることはできません。
IOError:デコーダーjpegは使用できません
1)Xcodeツールをインストールします(ターミナルを開いて実行: xcode-select --install
)-この投稿からの抜粋:Mac OS X 10.9の後にPILをインストールできません
2)次のリンクからlibpngおよびlibjpegパッケージ(コンボインストーラー)をインストールします:http : //ethan.tira-thompson.com/Mac_OS_X_Ports.html
3)再起動(必須であるかどうかは不明)
4)runを使用してPILを再インストールしますpip install -I PIL
(問題が発生する前にPILを最初にインストールしたため)
この助けを願って、もっと混乱しないでください...
_oho
この質問はかなり前に投稿されたもので、ほとんどの回答はかなり古いものです。したがって、これを理解するために何時間も費やしたとき、何も機能せず、この投稿のすべての提案を試しました。
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-dev
、libjpeg-turbo8-dev
とlibjpeg8-dev
。
これが2015年以降の人に役立つことを願っています!
乾杯
ここでも同じ問題が発生しますが、PILではなくPillowを使用していることを除いてJPEG support available
、はまだ発生していますIOError: decoder/encoder jpeg not available
。
上記のすべてを試してみましたが、何時間もたつと、使用するsudo pip install
と期待どおりに機能しないことに気づきました。virtualenv
。愚かな私。
sudo
コマンドを効果的に使用すると、virtualenvがアクティブ化されていない新しいシェル(これは私の理解では完全に正しくない場合があります)でコマンドが起動されます。つまり、パッケージはグローバル環境にインストールされます。(これは混乱を招きました。枕の2つの異なるインストールがあったと思います。)
私は物事を片付け、ユーザーをrootに変更し、virtualenvに再インストールしました。
うまくいけば、これは誰かを助けるでしょう!
Fedoraの場合
前提条件をインストールします
sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
今枕をインストールします
sudo pip install pillow
注-libjpegおよびzlibの場合、Fedora / CentOS / Red Hatにlibjpeg-develおよびzlib-develパッケージをインストールします
最初に、Pythonをアンインストールすることに加えて、隠しフォルダーuser / appDataにあるpythonフォルダーを削除する必要がありました(これは大きな頭痛の種でした)。次に、WinPythonディストリビューションをインストールしました:PILを含むhttp://code.google.com/p/winpython/
Mac OS Mountain Lionを使用している人のために、私はzeantsoiのアンサーを追跡しましたが、動作しません。
私は最終的にこの投稿の解決策に終わりました:http : //appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/
今、私は喜んでjpegのスクリプトを実行しています!