[Python-Dev] importlib is now bootstrapped (and what that means)

Brett Cannon brett at python.org
Fri Apr 20 17:04:13 CEST 2012

On Fri, Apr 20, 2012 at 11:02, Eric Snow <ericsnowcurrently at gmail.com>wrote:

> On Fri, Apr 20, 2012 at 7:54 AM, Eric V. Smith <eric at trueblade.com> wrote:
> > On 04/14/2012 02:12 PM, Brett Cannon wrote:
> >> My multi-year project -- started in 2006 according to my blog -- to
> >> rewrite import in pure Python and then bootstrap it into CPython as
> >> *the* implementation of __import__() is finally over (mostly)!
> >
> > Maybe I'm missing something, but it seems that I need to run
> > importlib._bootstrap._install(sys, _imp) manually in order to make
> > __import__ be importlib's version. Is that not supposed to happen
> > automatically?
> In the default tip (3.3a2+), importlib.__import__ is already
> bootstrapped, so you don't need mess with anything.  As well, in any
> of the 3.x versions you can bind builtins.__import__ to
> importlib.__import__.
> If you are making changes to importlib (essentially, changes in
> Lib/importlib/_bootstrap.py), you must re-build (make) cpython in
> order for your changes to get pulled into the frozen copy of
> importlib.  Until you do that, the built-in import machinery will be
> the one that existed before your changes.  You could also re-bind
> builtins.__import__ to try out the changes without having to re-build,
> but ultimately your changes will have to get frozen (into
> Python/importlib.h) and will be part of the commit of your changes to
> importlib.
> Likely you already know all this, but just in case...  :)

And if you want to run a test using importlib instead of the frozen code
you can use importlib.test.regrtest to handle the injection for you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20120420/fc6c589b/attachment.html>

More information about the Python-Dev mailing list