Итак, вы ссылались на main.py, но у вас также есть __main__.py в вашей структуре каталогов.Я предполагаю, что ваш каталог на самом деле содержит main.py вместо __main __. Py.
Чтобы импортировать из уровней в пакете, начните импорт с точки.Чтобы импортировать только одну функцию, вы должны использовать from .main import images_demo
Теперь давайте начнем с того, что main.py находится в grpc / вместе с allinone_server.py, затем мы переместим его в разные каталоги и посмотрим, как происходит импорт.изменения.
Если бы это было в grpc / from .main import images_demo
Если бы это было в моделях / from ..main import images_demo
Если бы это было в __ALL-IN-ONE / from ...main import images_demo
Если бы это было в __demo / from ...__demo.main import images_demo
Каждый дополнительный период поднимает вас на один уровень в иерархии, тогда вы используете имя следующего уровня вниз в целевом пути, пока вы недостичь того места, где вы хотите быть.
Теперь предположим, что вы хотите импортировать весь файл main.py.Если бы он был в grpc / from . import main
Если бы он был в моделях / from .. import main
Если бы он был в __ALL-IN-One / from ... import main
Еслиэто было в __demo / from ...__demo import main
Наконец, точечная нотация для перемещения на уровень работает только в том случае, если файл, который использует его, находится в пакете, поэтому это будет работать нормально, если на верхнем уровне вы начнетезапрограммируйте область действия вне этого пакета, затем используйте from __ALL-IN-ONE.models.grpc import allinone_server
Однако, если вы запустите allinone_server.py
напрямую, он не сможет импортировать что-либо выше этого, поскольку он не импортируется как часть пакета.Попробуйте, и дайте мне знать, если вам нужно лучшее объяснение.
Удачи!