[Tutor] Plugin system - how to manage plugin files?

Scott Nelson sirgnip at gmail.com
Wed Jul 28 20:53:42 CEST 2010


On Wed, Jul 28, 2010 at 10:07 AM, Mac Ryan <quasipedia at gmail.com> wrote:

> Hi everybody,
>
>
Mac,

I don't know if this is exactly what you are after, but I created a
poor-man's plugin system by simply putting .py files into the same directory
as my app and naming them like xxxx_plugin.py  Each of these .py "plugins",
had to define a class named "Plugin" that had some set of expected methods
and properties (ex: initialize(), run(), etc.).  Then, when my app started
up, it simply got a list of all the "*_plugin.py" files in the current
directory, dynamically imported the files using "my_module =
__import__(name)" and then I could do whatever I wanted with that module
using "my_module", such as instantiate an object for each module's "Plugin"
class, etc.

Actually, here's a snippet of code I had lying around that I slapped
together a few years ago to remind myself of how I did this.  I can't
promise this is 100% tested, but it should give you an idea.

http://pastebin.com/UtVp6J9j

Also, you might want to look at this discussion:
http://groups.google.com/group/comp.lang.python/browse_thread/thread/ba8d361516403fdf/

Best of luck!

-Scott
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20100728/d27ebe48/attachment.html>


More information about the Tutor mailing list