I am creating a python package which follows the structure:
project
├── package
│ ├── __init__.py
│ ├── __main__.py
│ └── subpackage01
│ ├── functions01.py
│ ├── __init.py__
│ └── subpackage02
│ ├── functions02.py
│ ├── __init__.py
├── requirements.txt
├── setup.py
In __main__.py
I have from .subpackage01.functions01 import foo
which gives me the error ImportError: attempted relative import with no known parent package
.
If I remove the dot before subpackage01 it works but stops working in my pypi package. Removing the dot, building the package and uploading it gives me the error ModuleNotFoundError: No module named 'subpackage01'
.
I can't understand the why, since in functions01.py
I have relative imports for subpackage02
that works with no problem. Also I can't figure out why it works when the package is built and doesn't in a local development environment.