Reputation: 272074
I cannot use PIL because it cannot find my libjpeg!
First, I installed PIL default. And when I ran the selftest.py
, it gave me:
IOError: decoder jpeg not available 1
items had failures: 1 of 57 in
selftest.testimage
***Test Failed*** 1 failures.
*** 1 tests of 57 failed.
Then, I followed instructions online to change PIL's setup.py
to
JPEG_ROOT = "/usr/lib"
Because when I locate libjpeg
, this is what I get:
locate libjpeg
/usr/lib/libjpeg.so.62
/usr/lib/libjpeg.so.62.0.0
/usr/lib64/libjpeg.so.62
/usr/lib64/libjpeg.so.62.0.0
/usr/share/doc/libjpeg-6b
/usr/share/doc/libjpeg-6b/README
/usr/share/doc/libjpeg-6b/usage.doc
/var/cache/yum/base/packages/libjpeg-6b-37.i386.rpm
/var/cache/yum/base/packages/libjpeg-6b-37.x86_64.rpm
So, I ran setup.py install
again...and did selftest.py
.
And I still get the same error!
Upvotes: 10
Views: 18236
Reputation: 13001
You could also try to use Pillow instead of PIL.
Pillow is a PIL fork to "foster active development of PIL". In versions 1.7.0 and 1.7.1 they made some changes to support multi-arch (see the changelog).
Upvotes: 1
Reputation: 2151
I had the same issue. In my case, I need to set:
JPEG_ROOT="/usr/lib64/"
instead of:
JPEG_ROOT="/usr/lib/"
Good luck.
Upvotes: 3
Reputation: 156
Today I was facing the same problem, and I've found the solution. Basically it involves remove the PIL, install lipjpeg through Fink and re-install the PIL.
I wrote an article telling step by step how to do that. If interesting check this out.
Upvotes: 0
Reputation: 803
There at least 3 header sets that you will want to install. 1 more if you want to deal with Tiff's
freetype, libjpeg, zlib all of which will be in the following packages on CentOS:
== 32 Bit: zlib-devel.i386 libjpeg-devel.i386 freetype-devel.i386
== 64 Bit: zlib-devel.x86_64 libjpeg-devel.x86_64 freetype-devel.x86_64
As you did before you will want to edit the following variables in the setup.py file:
FREETYPE_ROOT JPEG_ROOT ZLIB_ROOT
Setting there values to /usr/lib or /usr/lib64 based on your platform. Once done you will most likely want to run
python setup.py build --force
python setup.py install
That will force rebuild all your lib for PIL and reinstall them raw.
Upvotes: 18
Reputation: 172309
You need the libjpeg headers as well, not only the library itself. Those packages are typically called something ending in headers or dev, depending on what distribution you have.
Upvotes: 3