Mark Twenhafel wrote:
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,

I doubt K&R will help there -- I'd look for something about gcc. Even though tis isn't linux, I learned a lot form "Linux Application Development". You can probably find a reference on linking on OS-X -- it does some things differently.

good luck.

-CHB


 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




--
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.bar...@noaa.gov
_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to