On 1 December 2017 at 18:13, Neil Schemenauer <[email protected]> wrote: > I have been working on reducing Python statup time. It would be > nice if there was some way to load a module into memory without exec > of its body code. I'm sure other people have wished for this. > > Perhaps there could be a new special function, similar to __import__ > for this purpose. E.g. __load_module__(). To actually execute the > module, I had the idea to make module objects callable, i.e. tp_call > for PyModule_Type. That's a little too cute though and will cause > confusion. Maybe instead, add a function attribute to modules, e.g. > mod.__exec__(). > > I have a little experimental code, just a small step: > > https://github.com/nascheme/cpython/tree/import_defer_exec > > We need importlib to give us the module object and the bytecode > without doing the exec().
What does actually doing the load give that simply calling https://docs.python.org/3/library/importlib.html#importlib.util.find_spec doesn't? At that point, you know the module exists, and how to load it, which is all a lazy loading implementations really needs to be confident that a subsequent actual execution attempt will be able to start. Cheers, Nick. -- Nick Coghlan | [email protected] | Brisbane, Australia _______________________________________________ Python-ideas mailing list [email protected] https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/
