referring to package scope from module, using relative import?

Ian Kelly ian.g.kelly at gmail.com
Sat May 21 16:00:12 EDT 2011


On Sat, May 21, 2011 at 1:28 PM, Irmen de Jong <irmen.NOSPAM at xs4all.nl> wrote:
> Hi,
>
> I have a package with several modules in it. The package also has some objects created
> in the package scope (done in the package __init__.py).
>
> Is it possible to access those package scope objects from the modules, with relative
> imports or something? So that I don't have to import the package itself in its own
> submodules?
>
>
> Example:
>
> A/
>   __init__.py    ->  creates A.something
>   thing.py       ->  needs to do "import A"  to access A.something
>                      would like to not have to import A

You can do the relative import like this:

from . import something

Or if something were defined in A/otherthing.py, then:

from .otherthing import something

Note that PEP 8 discourages relative imports and encourages absolute
imports, though.  This would be the preferred way to do it:

from A import something

Cheers,
Ian



More information about the Python-list mailing list