python import module from parent package

2020-02-12 03:00发布

问题:

I have the following directory structure

foo/
    __init__.py
    settings.py
    bar/
        __init__.py
        myfile.py

In myfile.py I have: import settings

I get the following error: ImportError: No module named settings, why? How can I efectively import the settings file from myfile.py

回答1:

From http://docs.python.org/2/tutorial/modules.html#intra-package-references :

from .. import settings

Hope it helps



回答2:

Here is another method that seems more clear:

In foo.__init__.py:

  __all__ = ['settings', ..(all other modules at 'foo' level you want to show)...]

In myfile.py:

# instead of "from .. import..." 
  from foo import settings 
  print settings.theThing