mirror of
https://github.com/python/cpython.git
synced 2025-08-23 18:24:46 +00:00
Issue #27487: Merge runpy warning from 3.5
This commit is contained in:
commit
f9ed528faf
4 changed files with 52 additions and 11 deletions
11
Lib/runpy.py
11
Lib/runpy.py
|
@ -114,6 +114,15 @@ def _get_module_details(mod_name, error=ImportError):
|
|||
if e.name is None or (e.name != pkg_name and
|
||||
not pkg_name.startswith(e.name + ".")):
|
||||
raise
|
||||
# Warn if the module has already been imported under its normal name
|
||||
existing = sys.modules.get(mod_name)
|
||||
if existing is not None and not hasattr(existing, "__path__"):
|
||||
from warnings import warn
|
||||
msg = "{mod_name!r} found in sys.modules after import of " \
|
||||
"package {pkg_name!r}, but prior to execution of " \
|
||||
"{mod_name!r}; this may result in unpredictable " \
|
||||
"behaviour".format(mod_name=mod_name, pkg_name=pkg_name)
|
||||
warn(RuntimeWarning(msg))
|
||||
|
||||
try:
|
||||
spec = importlib.util.find_spec(mod_name)
|
||||
|
@ -121,7 +130,7 @@ def _get_module_details(mod_name, error=ImportError):
|
|||
# This hack fixes an impedance mismatch between pkgutil and
|
||||
# importlib, where the latter raises other errors for cases where
|
||||
# pkgutil previously raised ImportError
|
||||
msg = "Error while finding spec for {!r} ({}: {})"
|
||||
msg = "Error while finding module specification for {!r} ({}: {})"
|
||||
raise error(msg.format(mod_name, type(ex).__name__, ex)) from ex
|
||||
if spec is None:
|
||||
raise error("No module named %s" % mod_name)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue