diff options
-rw-r--r-- | Tools/freeze/modulefinder.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Tools/freeze/modulefinder.py b/Tools/freeze/modulefinder.py index a75e2f3..e84a541 100644 --- a/Tools/freeze/modulefinder.py +++ b/Tools/freeze/modulefinder.py @@ -21,6 +21,10 @@ if sys.platform=="win32": IMPORT_NAME = dis.opname.index('IMPORT_NAME') IMPORT_FROM = dis.opname.index('IMPORT_FROM') +STORE_NAME = dis.opname.index('STORE_NAME') +STORE_FAST = dis.opname.index('STORE_FAST') +STORE_GLOBAL = dis.opname.index('STORE_GLOBAL') +STORE_OPS = [STORE_NAME, STORE_FAST, STORE_GLOBAL] # Modulefinder does a good job at simulating Python's, but it can not # handle __path__ modifications packages make at runtime. Therefore there @@ -296,6 +300,9 @@ class ModuleFinder: if not self.badmodules.has_key(fullname): self.badmodules[fullname] = {} self.badmodules[fullname][m.__name__] = None + elif op in STORE_OPS: + # Skip; each IMPORT_FROM is followed by a STORE_* opcode + pass else: lastname = None for c in co.co_consts: |