summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/pickle.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/Lib/pickle.py b/Lib/pickle.py
index fda4bd7..7164eb1 100644
--- a/Lib/pickle.py
+++ b/Lib/pickle.py
@@ -661,15 +661,14 @@ class Unpickler:
dispatch[GLOBAL] = load_global
def find_class(self, module, name):
- env = {}
-
try:
- exec 'from %s import %s' % (module, name) in env
- except ImportError:
+ __import__(module)
+ mod = sys.modules[module]
+ klass = getattr(mod, name)
+ except (ImportError, KeyError, AttributeError):
raise SystemError, \
"Failed to import class %s from module %s" % \
(name, module)
- klass = env[name]
return klass
def load_reduce(self):