Ошибка ImportError: cannot import name 'cl' from 'main' (C:\Users\main.py)

Рейтинг: 0Ответов: 1Опубликовано: 08.01.2023

Подскажите пожалуйста, что не так и как исправить, чтоб начал работать код, когда запускаешь из файла t.py

main.py:

class Text:
    def __init__(self):
        self.text = set()
    def get_text(self):
        bla-bla-bla...
        return tuple(self.text)


if __name__ == "__main__":
    cl = Text()

t.py:

from main import cl
class NegText:
    def __init__(self):
        self.neg_text = set()

    def analyze(self):
        bla-bla-bla...
        return self.neg_text


if __name__ == "__main__":
    text = cl.get_text()
    nt = NegText()
    nt.analyze()

Ответы

▲ 1Принят

Проверка

if __name__ == '__main__':

выполняется, только если запущен файл, в котором она находится, а у вас определение переменной cl находится как раз в ней и, следовательно, при импорте переменная не создаётся.

Выход: вынести определение переменной cl из блока if __name__ == '__main__':.