Library import succeeds with nose, fails elsewhere

richmolj at gmail.com richmolj at gmail.com
Sun Apr 26 15:40:36 CEST 2015


On Saturday, April 25, 2015 at 7:53:27 PM UTC-4, Chris Angelico wrote:
> On Sun, Apr 26, 2015 at 9:36 AM,  <richmolj at gmail.com> wrote:
> > The solution ended up being editing the top-level __init__.py:
> >
> > import awesome
> >
> > and then *when in a subdirectory*:
> >
> > import awesome_lib as awesome
> >
> > and *when in a different top-level file*:
> >
> > import awesome.
> >
> > IOW (from what I can tell) I made importing the package the same as importing this one file. When in a subdirectory import via the package, when in a sibling file import the file directly.
> >
> > This certainly feels odd, and I did find some (likely preferred) different ways I could handle it. My intent was that now I can refer to awesome.util.helper regardless of where I am (outside the package, within different directories, etc). My guess is that doing things like importing 'helper' directly and referring to it as 'helper' (no awesome.util prefix) is the python way of doing things, just didn't ring true with my background.
> >
> 
> Give "from . import helper" a try; you may find that it works just as
> well as "import helper" does, but more explicitly saying that you want
> it from the current package. Other than that, I think you have
> something that'll work fine.
> 
> ChrisA

Just to follow up - could not get "from . import awesome" to work when in helper.py. Thanks for your help though.



More information about the Python-list mailing list