From: zope-bounces@zope.org [mailto:zope-bounces@zope.org] On Behalf Of Abraham Arellano Tavara
sorry but which files properties are thoses.... and my original file is in the directory "Extensions" outside the Zope directory structure, there i use the open but i don't know how. Thanks for the help, Abraham.
Your External Method file is in the Extensions folder, which is normally part of your Zope installation's directory tree. Here is an example that I have used successfully. In some other directory, put a file containing the python code that you wish to execute. For example - Zope Extensions ...(other Zope directories) YourProject __init__.py YourPythonFile.py Data The __init__.py file turns that directory into a Python "package". "Data" is a subdirectory. In the __init__.py file, put code similar to the following - import os.path BASEPATH=os.path.dirname(__file__) DATA_PATH=os.path.join(BASEPATH,'Data') Now put YourProject into the Python path. There are several ways to do this, but the easiest is to write the absolute path to the directory on one line in a .pth file - say "project.pth". Put this file into the same directory as Zope's Python executable. In your external method, place code similar to the following - from YourProject import BASEPATH, DATA_PATH from YourProject import YourPythonFile.YourFunction Now the paths and functions are available to the whatever external method code you wish to write. I recommend just computing the right directories and calling the module's code, something like this - Import os.path def external_method(filename): yourPythonFile.yourFunction(os.path.join(DATA_PATH,'data.txt')) Of course, you can pass the REQUEST or whatever else you like as well. Cheers, Tom P