'Attempted relative import in non-package' although packages with __init__.py in one directory
python, python-2.7, python-import
Solution
Relative imports only work for packages, but when you importing in `extended.py` you are running a top-level module instead.
The current directory may hold a `__init__.py` file but that doesn't make `exended.py` part of a package yet.
For something to be considered a package, you need to import the directory name instead. The following would work:
main.py
packagename\
__init__.py
basic.py
extended.py
then in `main.py` put:
import packagename.extended
and only then is `extended` part of a package and do relative imports work.
The relative import now has something to be relative to, the `packagename` parent.
Problem
I have a module named `extended.py` which contains the following line: ``` from .basic import BasicModule ``` and the file `basic.py` resides in the same directory as does `__init__.py`. However, when I try to run it as: ``` python extended.py ``` I get the error: ``` ValueError: Attempted relative import in non-package ``` Also adding the line: ``` from __future__ import absolute_import ``` does not solve the problem. Maybe I am too tired to see the obvious - but I don't see the problem here.