Форум сайта python.su
14
iBiZoNiX
Python 3.2.2 (default, Sep 5 2011, 21:17:14)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> __import__('../closure.py')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: Import by filename is not supported.
>>>
Офлайн
1
Спасибо за наводки. Получилось.
Сделал используя словарь, вышло весьма удобно:
plugins = {'plugins/1stplugin' : '1stPluginClass', 'plugins/2ndplugin' : '2ndPluginClass'} self.modules = {} for mod_path, cls_name in plugins .items(): module = importlib.import_module(mod_path) self.modules[cls_name] = getattr(module, cls_name) def declareClass(self, cls_name): print(self.modules[cls_name]) >>> print(self.modules) {'1stPluginClass' : <class 'plugins.1stPluginClass'>, '2ndPluginClass' : <class 'plugins.2ndPluginClass'>} >>> self.declareClass('1stPluginClass') <class 'plugins.1stPluginClass'>
Отредактировано ValeriyB (Апрель 14, 2012 21:08:47)
Офлайн
0
Андрей СветловСтранно, у меня бот по такому принципу работает на Python 3.2.2
Офлайн