[Image-SIG] Installing libjpeg

Mark Twenhafel chollapete at gmail.com
Mon May 17 20:58:47 CEST 2010


Chris--I thought I had mailed this Friday, but it never appeared in image-sig,
so here goes again.  I'll continue with the interleaved response-style.  Thanks
for the help--for my part, I'm working through K&R, hoping that this will teach
me enough about compiling and linking C to puzzle out why this package isn't
installing seamlessly.

Mark

>Mark Twenhafel wrote:
>>* Try adding
*>>*
*>>*    print Image.core.__file__
*>>*
*>>* to your script and make sure that the output is what you expect.
*>
>what was the result of that?

redpoint:~/sandbox/python/persfin1 mark$ python
Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39)
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import Image
>>> print Image.core.__file__
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/_imaging.so
>>>


>
>>* At this point, my working hypothesis is that I did not install libjpeg
*>>* correctly.  I'm working on OS X Tiger.  What I did was download
*>>* "jpegsrc.v8a.tar.gz"; double-click in my download window in Firefox to
*>>* untar; move the untarred "jpeg-8" folder to /Application; open Terminal
*>>* and cd'ed to /Applications/jpeg-8; finally, I ran "./configure", "make",
*>>* and "make install".
*>>*
*>>* It could be--and I don't know--that this install procedure did not
*>>* correctly add libjpeg to my Python 2.6 installation
*>
>no it wouldn't have done that.
>
>*> or that I need to
*>>* rebuild site-packages/PIL/_imaging.so in order to link-in libjpeg.
*>
>indeed you do.
>
>>* Belated point of clarification: I subsequently installed PIL using the
*>>* these instructions:
*>>*         $ cd Imaging-1.1.7
*>>*         $ python setup.py build_ext -i
*>>*         $ python selftest.py
*>
>that should have built a new PIL, but it won't have installed it.
>
>Did the selftest run OK?

redpoint:/Applications/Imaging-1.1.7 mark$ python selftest.py
--------------------------------------------------------------------
PIL 1.1.7 TEST SUMMARY
--------------------------------------------------------------------
Python modules loaded from ./PIL
Binary modules loaded from ./PIL
--------------------------------------------------------------------
--- PIL CORE support ok
--- TKINTER support ok
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
--- FREETYPE2 support ok
*** LITTLECMS support not installed
--------------------------------------------------------------------
Running selftest:
--- 57 tests passed.
redpoint:/Applications/Imaging-1.1.7 mark$


>
>>* I just noticed that the file "site-packages/PIL/_imaging.so" was created
*>>* last October.
*>
>which is why you are getting an old one here.

The last few lines of a long listing of PIL follow:

-rw-r--r--     1 root  admin     3047 Oct 11  2009 XpmImagePlugin.pyc
-rw-r--r--     1 root  admin      231 Dec  3  2006 __init__.py
-rw-r--r--     1 root  admin      180 Oct 11  2009 __init__.pyc
-rw-r--r--     1 root  admin  1406408 Oct 11  2009 _imaging.so
-rw-r--r--     1 root  admin    87420 Oct 11  2009 _imagingft.so
-rw-r--r--     1 root  admin    89240 Oct 11  2009 _imagingmath.so
-rw-r--r--     1 root  admin    54056 Oct 11  2009 _imagingtk.so
redpoint:/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL
mark$



>
>>*  If so, would be be possible or likely that this was built
*>>* using the version of libjpeg that didn't install on my machine?
*>
>yup.
>
>>*  If this
*>>* is correct, what is the best way to proceed?  My first inclination is to
*>>* delete the directory site-packages/PIL and reinstall.
*>
>yup -- you may not even need to delete, but it won't hurt.
>
>Take a look for a new _imaging.so that you should have just built. If
>you really want to know what it's linked to, try:
>
>$ otool -L _imaging.so


Interpreting this is beyond me, at this point:

redpoint:/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL
mark$ otool -L _imaging.so
_imaging.so:
        /usr/local/lib/libjpeg.7.dylib (compatibility version 8.0.0,
current version 8.0.0)
        /opt/local/lib/libz.1.dylib (compatibility version 1.0.0,
current version 1.2.3)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0,
current version 88.3.9)
redpoint:/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL
mark$



>
>But you might just do:
>
>setup.py install
>
>and see if it now works.

The following code still produces the following exception:

redpoint:~/sandbox/python/persfin1 mark$ cat ./mwm.py
#!/usr/local/bin/python
from Tkinter import *
import Image
import ImageTk

class Application(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.grid()
        self.createWidgets()

    def createWidgets(self):
        self.cnv = Canvas(self)
        self.img =
ImageTk.PhotoImage(Image.open("/Applications/Imaging-1.1.7/Images/lena.jpg"))
        cvnitem = self.cnv.create_image(100, 100, image=self.img)
        self.cnv.grid()

app = Application()
app.master.title("Sample application")
app.mainloop()

redpoint:~/sandbox/python/persfin1 mark$ ./mwm.py
Traceback (most recent call last):
  File "./mwm.py", line 18, in <module>
    app = Application()
  File "./mwm.py", line 10, in __init__
    self.createWidgets()
  File "./mwm.py", line 14, in createWidgets
    self.img = ImageTk.PhotoImage(Image.open("/Applications/Imaging-1.1.7/Images/lena.jpg"))
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/ImageTk.py",
line 116, in __init__
    self.paste(image)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/ImageTk.py",
line 166, in paste
    im.load()
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/ImageFile.py",
line 180, in load
    d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
  File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PIL/Image.py",
line 375, in _getdecoder
    raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
redpoint:~/sandbox/python/persfin1 mark$


>
>We really do need to get a Mac binary built!
>
>-CHB
>
>
>
>
>
>--
>Christopher Barker, Ph.D.
>Oceanographer
>
>Emergency Response Division
>NOAA/NOS/OR&R            (206) 526-6959   voice
>7600 Sand Point Way NE   (206) 526-6329   fax
>Seattle, WA  98115       (206) 526-6317   main reception
>
>Chris.Barker at noaa.gov <http://mail.python.org/mailman/listinfo/image-sig>
>

Thanks to anyone looking at this.  Like I said, I want to get this
running, but I'm not asking
anyone to do my own debugging.  I'll keep hacking away at this at my level.

Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/image-sig/attachments/20100517/be38e8f9/attachment.html>


More information about the Image-SIG mailing list