Я создаю пакет python, который следует структуре:
project
├── package
│ ├── __init__.py
│ ├── __main__.py
│ └── subpackage01
│ ├── functions01.py
│ ├── __init.py__
│ └── subpackage02
│ ├── functions02.py
│ ├── __init__.py
├── requirements.txt
├── setup.py
В __main__.py
у меня есть from .subpackage01.functions01 import foo
, что дает мне ошибку ImportError: attempted relative import with no known parent package
.
Если я удалю точку перед subpackage01, она будет работать, но перестанет работать в моем пакете pypi. Удаление точки, сборка пакета и его загрузка дают мне ошибку ModuleNotFoundError: No module named 'subpackage01'
.
Я не могу понять почему, поскольку в functions01.py
у меня есть относительный импорт для subpackage02
, который работает без проблем. Также я не могу понять, почему это работает, когда пакет собран, а не в локальной среде разработки.
__init__.py
в каталогеsubpackage01
? - person slayer   schedule 06.06.2019