--- "Arenz, Ralph" <Ralph.Arenz@f...> wrote:
Hi,
i' am using external methods to do something on the filesystem.So i make an external method for the entry-function. This works fine,so far. The module which is containing the function imports several other modules which i placed in <zope>/lib/python> directory.
My problem is that changes to imported modules takes no effect. What have i to do to tell Zope that the imported modules has changed ?
A simple buttonclick in the Zope manage screen won't do. Equally, compiling the imported method to bytecode takes no effect.
Changes in the function or module which is connected via "external method" to zope are approved after a buttonclick on "edit" in zope.
Are you developing a Product? (That is, do you put code in a subdirectory of <zope>/lib/python/Product? If yes, just put your Python modules in the Extensions subdirectory of your Product directory, along with files defining your external methods. (Note that you can have more than one external method in a file.) Then, create an __init__.py file in the Extensions subdirectory of your Product. (I think you have to include __doc__ and __version__ strings in the __init__.py, but I'm not sure.) Finally, in __init__.py import all the files in the directory. (I think that makes Zope aware of them for purposes of updating.) I've found that with a setup like that, updating my product from the Control Panel updates all the Python modules and external methods in my product's Extensions directory. It even works with the automatic update feature you can turn on for your product in the Control Panel's item for your product.