[Pythonmac-SIG] PIL/JPEG trouble
Dinu Gherman
gherman@darwin.in-berlin.de
Mon, 5 Aug 2002 12:05:56 +0200
--Apple-Mail-1-842632747
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
charset=US-ASCII;
format=flowed
Hi, I've got some trouble on OS X telling PIL where to find the JPEG
library. This results in "IOError: decoder jpeg not available" errors.
I've installed JIG's library libjpeg.a into /usr/local/lib and its
tools into /usr/local/bin (wrjpgcom, rdjpgcom, jpegtran, djpeg, cjpeg).
I've also tried a configure pass with --with-jpeg=/usr/local/lib but
all in vain.
I've attached a sample installation script which should automatically
fetch zlib, jpeg and pil from the net and install them the "canonical"
way... Below I've also pasted the results of running PIL's
MiniTest/test.py.
Does anybody have an idea?
Thanks,
Dinu
[localhost:Imaging-1.1.3] dinu% python MiniTest/test.py
*****************************************************************
Failure in example: _info(Image.open("Images/lena.jpg"))
from line #24 of test.testimage
Exception raised:
Traceback (most recent call last):
File "MiniTest/doctest.py", line 499, in _run_examples_inner
exec compile(source, "<string>", "single") in globs
File "<string>", line 1, in ?
File "MiniTest/test.py", line 12, in _info
im.load()
File "PIL/ImageFile.py", line 140, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File "PIL/Image.py", line 255, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
*****************************************************************
Failure in example: type(im.im) # internal image attribute
from line #31 of test.testimage
Expected: <type 'None'>
Got: <type 'NoneType'>
1 items had failures:
2 of 40 in test.testimage
***Test Failed*** 2 failures.
*** 2 tests of 40 failed.
--Apple-Mail-1-842632747
Content-Disposition: attachment;
filename=install.py
Content-Transfer-Encoding: 7bit
Content-Type: application/text;
x-mac-creator=522A6368;
x-unix-mode=0644;
x-mac-type=54455854;
name="install.py"
#! /usr/bin/env python
"""install.py - a funky install script.
Sample usage:
python install.py zlib jpeg pil
python install.py pil
"""
import os, string, sys
from os.path import basename, join
from urllib import urlopen
###############################################################################
# Package descriptions
###############################################################################
jpeg = {
"name": "JPEG Support for PIL",
"homepage": "http://www.ijg.org",
"download": "http://www.ijg.org/files/jpegsrc.v6b.tar.gz",
"install": """\
tar xfz jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure
make
make test
sudo make install
sudo make install-lib
"""}
zlib = {
"name": "Zlib",
"homepage": "http://www.gzip.org/zlib/",
"download": "http://www.gzip.org/zlib/zlib-1.1.4.tar.gz",
"install": """\
tar xfz zlib-1.1.4.tar.gz
cd zlib-1.1.4
./configure
make
sudo make install
"""}
pil = {
"name": "PythonWare's PIL 1.1.3",
"homepage": "http://www.pythonware.com/products/python/index.htm",
"download": "http://www.pythonware.com/downloads/Imaging-1.1.3.tar.gz",
"install": """\
tar xfz Imaging-1.1.3.tar.gz
cd Imaging-1.1.3
cd libImaging
./configure
make
cd ..
python setup.py build
sudo python setup.py install
"""}
###############################################################################
# Installation
###############################################################################
def install(packages):
dir = os.getcwd()
for p in packages:
try:
p = globals()[p]
except:
print "Skipping", p
continue
# get package details
name = p['name']
url = p['download']
instructions = p['install']
# download, if needed
path = join(dir, basename(url))
if not os.path.exists(path):
print "Downloading", name
data = urlopen(url).read()
open(path, "wb").write(data)
# install
print "Installing", name
open('install.sh', 'w').write(instructions)
os.system('tcsh -f install.sh')
if __name__ == '__main__':
packages = sys.argv[1:]
install(packages)
--Apple-Mail-1-842632747--