Rav*_*avi 304 python jpeg python-imaging-library pillow
PIL在我的系统中支持JPEG.
每当我上传时,我的代码都失败了:
File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
Rol*_*olo 487
的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
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,请尝试以下其中一项,具体取决于您使用的是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
Run Code Online (Sandbox Code Playgroud)
或者对于Ubuntu 32bit:
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/
Run Code Online (Sandbox Code Playgroud)
然后重新安装枕头:
pip install --no-cache-dir -I pillow
Run Code Online (Sandbox Code Playgroud)
(编辑包括评论的反馈.感谢Charles Offenbacher指出这与32位不同,而t-mart建议使用--no-cache-dir).
zea*_*soi 63
对于OSX上的那些人,我使用以下二进制文件来获得系统安装的libpng和libjpeg:
因为我已经安装了PIL(通过virtualenv上的pip),我跑了:
pip uninstall PIL
pip install PIL --upgrade
Run Code Online (Sandbox Code Playgroud)
这解决了decoder JPEG not available我的错误.
更新(2014年4月24日):
较新版本的pip需要额外的标志才能从外部源下载库(包括PIL).请尝试以下方法:
pip install PIL --allow-external PIL --allow-unverified PIL
Run Code Online (Sandbox Code Playgroud)
有关其他信息,请参阅以下答案:pip install PIL不要安装到virtualenv中
更新2:
如果在OSX Mavericks上,您需要将ARCHFLAGS标记设置为@RicardoGonzales评论如下:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install PIL --allow-external PIL --allow-unverified PIL
Run Code Online (Sandbox Code Playgroud)
Den*_*zov 29
这是对我有用的唯一方法.安装包并重新安装PIL不起作用.
在ubuntu上,安装所需的包:
sudo apt-get install libjpeg-dev
Run Code Online (Sandbox Code Playgroud)
(您可能还希望安装libfreetype6 libfreetype6-dev zlib1g-dev以启用其他解码器).
然后用枕头替换PIL:
pip uninstall PIL
pip install pillow
Run Code Online (Sandbox Code Playgroud)
小智 21
以下是关于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
Run Code Online (Sandbox Code Playgroud)
当你看到" - JPEG支持avaliable",这意味着它的工作原理.
但是,如果在编辑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/
最后,它的确有效!
Ben*_*ngt 16
在Fedora 17上我必须安装libjpeg-devel并在之后重新安装PIL:
sudo yum install --assumeyes libjpeg-devel
sudo pip-python install --upgrade PIL
Run Code Online (Sandbox Code Playgroud)
dav*_*ode 14
Rolo的答案非常好,但是我不得不绕过pip缓存重新安装Pillow(用pip 7引入),否则它将无法正确重新编译!命令是:
pip install -I --no-cache-dir -v Pillow
Run Code Online (Sandbox Code Playgroud)
您可以通过阅读日志来查看枕头是否已正确配置:
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
--------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
你可以看到对jpg,tiff等的支持已启用,因为我之前通过apt安装了所需的库(libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)
moo*_*goo 12
在Mac OS X Mavericks(10.9.3)上,我通过以下方式解决了这个问题:
通过brew安装libjpeg (包管理系统)
brew安装libjpeg
重新安装枕头(我用枕头代替PIL)
pip install -I枕头
小智 11
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev
Run Code Online (Sandbox Code Playgroud)
安装这些并确保使用pip安装PIL因为我从源代码编译它,并且由于某种原因它不起作用
我已经使用Pillow并得到了同样的错误.尝试安装libjpeg或libjpeg-dev按照其他人的建议,但被告知已经安装了(较新的)版本.
最后所需要的只是重新安装Pillow:
sudo pip uninstall Pillow
sudo pip install Pillow
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
148917 次 |
| 最近记录: |