Intanto grazie mille per le prontissime risposte alla mia richiesta... Le vostre soluzioni funzionano entrambe se provate in terminale. Non riesco però ad applicarle al mio preciso ambito, per questo entro con voi nel merito della questione più in profondo.
Ho una directory con dei plugins, che vorrei riuscire a caricare dinamicamente. Eseguo l'import dinamico cercando nel filesystem le cartelle; ogni cartella ha al suo interno un file __init__.py che dovrebbe procedere all'inclusione del file principale del plugin, che si chiama NomePlugin.py. Il codice dedito a questo è __import__(PF.pluginName, globals(), locals(), []) In PF.pluginName c'è la stringa con il nome del plugin e quindi della file .py da importare. Mi piacerebbe anche istanziare la classe principale all'interno del file, che si chiama, con un guizzo di fantasia, NomePlugin. Al momento faccio NomePlugin.NomePlugin(parametro) (supponendo appunto che sia file principale che classe si chiamino NomePlugin vorrei dinamicizzare il tutto ed ho provato con globals()[PF.pluginName](PF.pluginName) Traceback (most recent call last): File "./AirNMS.py", line 58, in ? app = AirNMS(0) File "/usr/lib/python2.4/site-packages/wx-2.6-gtk2-unicode/wx/_core.py", line 7700, in __init__ self._BootstrapApp() File "/usr/lib/python2.4/site-packages/wx-2.6-gtk2-unicode/wx/_core.py", line 7352, in _BootstrapApp return _core_.PyApp__BootstrapApp(*args, **kwargs) File "./AirNMS.py", line 53, in OnInit frame = MainView.MainView(None, -1, 'AirNMS') File "/home/sbaush/Projects/airspot/trunk/MainView.py", line 34, in __init__ sectionDirector.createAllPlugin() File "/home/sbaush/Projects/airspot/trunk/SectionDirector.py", line 71, in createAllPlugin self.sectionsReferences[eachSection].createPlugin() File "/home/sbaush/Projects/airspot/trunk/Section.py", line 51, in createPlugin self.pluginReferences[eachPlugin]=self.pluginFactory.getPlugin(self.basePath,self.name,eachPlugin) File "/home/sbaush/Projects/airspot/trunk/PluginFactory.py", line 22, in getPlugin __import__(self.basePath+'.'+self.sectionName+'.'+self.pluginName) File "/home/sbaush/Projects/airspot/trunk/sections/Monitor/MapPlugin/__init__.py", line 8, in ? globals()[PF.pluginName](MapPlugin) TypeError: 'module' object is not callable Ho provato anche con vars al posto di globals, ma il risultato è stato lo stesso... Cosa posso fare? Sono riuscito a spiegarmi? -- Marco Meoni (Sbaush) _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python