mirror of
https://github.com/python/cpython.git
synced 2025-12-15 21:44:50 +00:00
merge for issue #20778
This commit is contained in:
commit
0f3847855d
3 changed files with 29 additions and 5 deletions
|
|
@ -1,6 +1,7 @@
|
|||
"""Find modules used by a script, using introspection."""
|
||||
|
||||
import dis
|
||||
import importlib._bootstrap
|
||||
import importlib.machinery
|
||||
import marshal
|
||||
import os
|
||||
|
|
@ -287,11 +288,12 @@ class ModuleFinder:
|
|||
if type == imp.PY_SOURCE:
|
||||
co = compile(fp.read()+'\n', pathname, 'exec')
|
||||
elif type == imp.PY_COMPILED:
|
||||
if fp.read(4) != imp.get_magic():
|
||||
self.msgout(2, "raise ImportError: Bad magic number", pathname)
|
||||
raise ImportError("Bad magic number in %s" % pathname)
|
||||
fp.read(4)
|
||||
co = marshal.load(fp)
|
||||
try:
|
||||
marshal_data = importlib._bootstrap._validate_bytecode_header(fp.read())
|
||||
except ImportError as exc:
|
||||
self.msgout(2, "raise ImportError: " + str(exc), pathname)
|
||||
raise
|
||||
co = marshal.loads(marshal_data)
|
||||
else:
|
||||
co = None
|
||||
m = self.add_module(fqname)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue