Hi, If I try to use:
from .common.common_foo import setup_foo_logging I get: ValueError: Attempted relative import in non-package And the absolute imports don't seem to be able to find the right modules. Is it something to do with the fact I'm running the sync_em.py script from the "foo_loading/em_load" directory? I thought I could just refer to the full path, and it'd find it, but evidently not...hmm. Cheers, Victor On Tuesday, 29 October 2013 12:01:03 UTC+11, Ben Finney wrote: > Victor Hooi <victorh...@gmail.com> writes: > > > > > Ok, so I should be using absolute imports, not relative imports. > > > > I'd say it is fine to use relative imports, so long as they are > > explicit. (In Python 3, the default for an import is to be absolute, and > > the *only* way to do a relative import is to make it explicitly > > relative. So you may as well start doing so now.) > > > > > Hmm, I just tried to use absolute imports, and it can't seem to locate > > > the modules: > > > > > > In the file "foo_loading/em_load/sync_em.py", I have: > > > > > > from common.common_bex import setup_foo_logging > > > > So I'd recommend this be done with an explicit relative import: > > > > from .common.common_bex import setup_foo_logging > > > > or, better, import a module: > > > > from .common import common_bex > > > > or a whole package: > > > > from . import common > > > > -- > > \ “I went over to the neighbor's and asked to borrow a cup of | > > `\ salt. ‘What are you making?’ ‘A salt lick.’” —Steven Wright | > > _o__) | > > Ben Finney -- https://mail.python.org/mailman/listinfo/python-list