Как импортировать два модуля друг в друга? - PullRequest
0 голосов
/ 04 июня 2019

У меня есть два модуля в python 3gorithms.py и main.py Я пытаюсь импортировать класс из алгоритмов в main и импортировать функцию и переменную в алгоритмы.Мой каталог прост, он выглядит так:

algorithm-animation-python ->
      __init__.py (empty)
      algorithms.py
      main.py

Я получаю ModuleNotFoundError после того, как попробовал множество решений, но ничего не помогло.

Я попробовал: Как импортировать класс в том же каталоге или подкаталоге?

Импортировать файл из подкаталога?

main.py

from .algorithms import Algorithm
from .main import number_list
from .main import canvas

Когда запускается полная ошибка, я получаю:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    from .algorithms import Algorithm
ModuleNotFoundError: No module named '__main__.algorithms'; '__main__' is not a package

И без.Я получаю ошибку:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    from algorithms import Algorithm
  File "C:\Users\user\Documents\GitHub\algorithm-animation-python\algorithms.py", line 1, in <module>
    from main import number_list
  File "C:\Users\user\Documents\GitHub\algorithm-animation-python\main.py", line 1, in <module>
    from algorithms import Algorithm
ImportError: cannot import name 'Algorithm' from 'algorithms' (C:\Users\user\Documents\GitHub\algorithm-animation-python\algorithms.py)

1 Ответ

0 голосов
/ 06 июня 2019

Ха.Никогда не пробовал и начинающий, так что это может не сработать, но попробуйте

from .main import canvas and number_list

Или, если вы используете более старую версию

from .main import canvas && number_list

Кроме того, если вы хотите, чтобы все функции в этом модуле попробуйте

from .main import *

Просто, чтобы вы знали, это может не сработать, потому что я новичок

...