diff -r 7088860e4a00 -r e5d62581d002 eric6/PluginManager/PluginManager.py --- a/eric6/PluginManager/PluginManager.py Fri Feb 07 18:49:32 2020 +0100 +++ b/eric6/PluginManager/PluginManager.py Sat Feb 08 16:47:20 2020 +0100 @@ -9,8 +9,9 @@ import os import sys -import imp import zipfile +import types +import importlib from PyQt5.QtCore import ( pyqtSignal, QObject, QDate, QFile, QFileInfo, QUrl, QIODevice @@ -400,7 +401,10 @@ """ try: fname = "{0}.py".format(os.path.join(directory, name)) - module = imp.load_source(name, fname) + spec = importlib.util.spec_from_file_location(name, fname) + module = importlib.util.module_from_spec(spec) + sys.modules[module.__name__] = module + spec.loader.exec_module(module) if not hasattr(module, "autoactivate"): module.error = self.tr( "Module is missing the 'autoactivate' attribute.") @@ -425,7 +429,7 @@ module.eric6PluginModuleFilename = fname self.__modulesCount += 1 if reload_: - imp.reload(module) + importlib.reload(module) self.initOnDemandPlugin(name) try: pluginObject = self.__onDemandInactivePlugins[name] @@ -436,7 +440,7 @@ except PluginLoadError: print("Error loading plug-in module:", name) except Exception as err: - module = imp.new_module(name) + module = types.ModuleType(name) module.error = self.tr( "Module failed to load. Error: {0}").format(str(err)) self.__failedModules[name] = module