[Zope] External Methods ->syntax + file access = how ?

Jason Cunliffe jasonic@nomadicsltd.com
Fri, 29 Oct 1999 12:57:59 +0200


Trying to get PIL [Python Imaging Library.
http://www.pythonware.com/products/pil/ ] and other modules to work via
Zope External Methods. But so far getting hung up on some simple
understanding about Python and Zope. Searched archives, but I could find
the answer.

When testing outside of Zope, from python shell such as Idle, everything
works OK. But inside Zope I keep getting file, URL,  or resources not found
- error messages, whenever I try to open an image into my python code.
Seems like it's either blocked by security checks and/or I am making newbie
path mistakes. 

I've tried a lot of variations with setting paths, experimenting with
os.chdir(), and checking the files visible to my code using
os.listdir(os.getcwd()). I can import the PIL modules and see the files I
want to open in the 'Extensions' folder, but can't open them.

At present, all the PIL files are in the 'Extensions' folder, but I
understand from the ZCMG that I could also put them in 'Shared'. The ZCMG
says that I can create a folder in 'Shared' with company or personal name
and then this will be automatically referenced by zope. What is not clear
to me what name, why and what do I ave to do to tell zope about the folder
name I have created there.?
 
Most of PIL is just python and suffices to parse the image headers, but for
image processing, PIL uses a platform-specific library (ie: _imaging.dll on
Win32). Where should this go on a ZopeSite? And what is my path needs to
import PIL. 

minimal external method for testing :

#pil_test.py

import os, sys
import Image

def pil_test(self):
		infile = 'animage.jpg'
		im = Image.open(infile)
		return im.size, im.format, im.mode

won't work: errors as above.

..So I tried opening a simple text text file in 'Extensions' and  that
failed. 
Is this illegal?? 

How do I use python external method to 'open' any file.? Do I have to
import htmllib or somesuch and use that to point at my ZopeSite or
elsewhere? I've already tested this with loading and displaying local and
remote HMTL pages in open. fun,very cool. 

What syntax will directly load Zope 'Image' objects into Python external
methods. 

The zope error messages reference line 110 of Image.py and line 716 of
ImageFile.py

So far I 've come up with 4 possibles:
1. The namespace of Zope 'Image' is getting confused by imported PIL 'Image'
2. What I am doing is illegal
3. I am in wrong path
4. Dumb newbie typos

I am very keen to get this working, so that we can get on with creating a
set of nice Zope image processing methods. These can allow much friendlier
end-user uploading of images with automatic linked indexes, thumbnailing,
sending e-mail to user groups of images, image compositing etc. 

Thanks in advance for any tips

- Jason Cunliffe
-------------------------------------------------
Jason Cunliffe  <jasonic@nomadicsltd.com>
NOMADICS.STUDIO(Design Director)
Geo-Digital Arts and Technology
Le Vieux Moulin,  Route de Mons
83440  SEILLANS,  FRANCE
Tel: +33 (0)4 94.76.98.72    
Fax: +33 (0)4 94.76.97.77