Laszlo Nagy wrote: > >> .../.../../plugin/name1/name1.py >> .... >> .../.../../plugin/namen/namen.py >> >> >> I block at the beginning and tried this (test.py is a real file) >> >>>>> s = 'test.py' >>>>> eval ('import ' + s) >>>>> > import test.py # This is invalid > import test # This MAY be valid > import name1.name1 # Most probably this is what you want if you have the > aforementioned directory stucture > from name1 import name1 # Or this? > > You must also: > > 1. Have the 'plugin' dir in your sys.path > 2. Have at least an empty plugin/name1/__init__.py file > > Another alternative is to have plugins/__init__.py and do something like: > > from plugins.name1 import name1 > > You should not overcomplicate things anyway. If you do not need these > name1...namen directories for sure, then just drop them. > > Hint: try this (untested) > > import os > fnames = os.listdir('plugins') > for fname in fnames: > if os.path.isdir(fname): > root,ext = os.path.splitext(fname) > cmd = "from plugins.%s import %s" % (root,root) > print "I should eval this:",cmd > > Best, > > Laszlo > > >> Traceback (most recent call last): >> File "<pyshell#1>", line 1, in -toplevel- >> eval ('import ' + s) >> File "<string>", line 1 >> import test.py >>
Thanks, What I am doing is adding plugin support to PyCrust ... so I'm looking for a mechanism where anyone can develop a plugin and have it loaded by pycrust. the .py was a typo why the "...Have at least an empty plugin/name1/__init__.py file..." ? Thanks, hg -- http://mail.python.org/mailman/listinfo/python-list