From: Victor Stinner Date: Tue, 23 Mar 2021 18:22:57 +0000 (+0100) Subject: bpo-41718: runpy now imports pkgutil in functions (GH-24996) X-Git-Tag: v3.10.0a7~103 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bd9154a495434464283f74b660160f89930cd791;p=thirdparty%2FPython%2Fcpython.git bpo-41718: runpy now imports pkgutil in functions (GH-24996) Reduce the number of modules imported by "python3 -m module". The runpy module no longer imports at startup (in the module body), but only in functions using it: _get_code_from_file() and run_path(). --- diff --git a/Lib/runpy.py b/Lib/runpy.py index 7e1e1ac5dde2..caba12142623 100644 --- a/Lib/runpy.py +++ b/Lib/runpy.py @@ -16,7 +16,6 @@ import importlib.util import io import types import os -from pkgutil import read_code, get_importer __all__ = [ "run_module", "run_path", @@ -233,6 +232,7 @@ def _get_main_module_details(error=ImportError): def _get_code_from_file(run_name, fname): # Check for a compiled file first + from pkgutil import read_code decoded_path = os.path.abspath(os.fsdecode(fname)) with io.open_code(decoded_path) as f: code = read_code(f) @@ -255,6 +255,7 @@ def run_path(path_name, init_globals=None, run_name=None): if run_name is None: run_name = "" pkg_name = run_name.rpartition(".")[0] + from pkgutil import get_importer importer = get_importer(path_name) # Trying to avoid importing imp so as to not consume the deprecation warning. is_NullImporter = False