[Python-ideas] Packages and Import

Brett Cannon brett at python.org
Thu Feb 8 20:43:43 CET 2007


On 2/8/07, Adam Olsen <rhamph at gmail.com> wrote:
> On 2/4/07, Ron Adam <rrr at ronadam.com> wrote:
> >
> > After exploring this a bit further on comp.lang.python, I was able to organize
> > these ideas better.  The more I thought about it, the more '+'s I found, and
> > about the only '-'s I can think of is the work required to actually make a patch
> > to do it.
> >
> > It's also good to keep in mind that since most people still rely on the old
> > relative import behavior, most people have not run into some of the issues I
> > mention here.  But they will at some point.
> >
> > I did mean to keep this short, but clarity won out. (At least it's clear to me,
> > but that's an entirely subjective opinion on my part.)
> >
> > Maybe someone will adopt this and make a real PEP out of it.  :-)
>
> For all the complexity of module attributes and global import hooks I
> think there's something that'll start to strip some of it away: make
> __import__() into a method of ModuleType, then ensure there's a way to
> load python modules using subclasses of ModuleType.
>

And so __import__ is to be bound to what module's method?  Or is it a
class method?

> You could have entirely different semantics, independent of
> sys.modules.

You can have that now if you ignored 'reload'.  You just need to
delete a module from sys.modules as soon as you import.  Then you can
set up your imports to do what you want.

>  You could load from a zip file that's entirely private,
> while still allowing modules within it to reach each other using
> relative imports.

So are you saying that imports in a module are to use the module's
__import__ method?  So instantiate a module and then use it's method
to initialize the module itself?

-Brett



More information about the Python-ideas mailing list