YardalGedal
@YardalGedal
yeah boy

Что означает за странное (namespace)?

Допустим, есть некая структура:
plugins/__init__.py
plugins/A/__init__.py
plugins/A/main.py
plugins/B/__init__.py
plugins/B/main.py

plugins/__init__.py точно содержит в себе
from . import A
from . import B

В свою очередь __init__.py в A и B содержат
from .main import *
А в main'ах A и B реализовано некоторое количество классов, объявленных в __all__ для того, чтобы импортировались именно они.

Проблема заключается в том, что при импорте A у меня всё хорошо:
from plugins import A
<module 'plugins.A' from '/path'>

Однако при импорте B результат абсолютно другой, и при этом внутренние классы не видны (я имею в виду в dir() отсутствуют и B.ClassName - AttributeError)
from plugins import A
<module 'plugins.B' (namespace)>


Стойкое ощущение что я где-то что-то упустил. Где может быть проблема?
  • Вопрос задан
  • 150 просмотров
Решения вопроса 2
@Zanak
Подозреваю, что здесь, в пункте 6.4.1 и таится ответ на ваш вопрос.
Ответ написан
YardalGedal
@YardalGedal Автор вопроса
yeah boy
Проблема оказалась в сбое выгрузки кода на сервер. То ли там была старая версия main.py без условного ClassB, то ли старая версия __init__.py или ещё что-то. Решилось повторной принудительной загрузкой этого плагина.
Не догадался бы, если не поизменял файл __init__.py по подсказке Zanak ;)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы