如何将两个模块相互导入?

时间:2019-06-04 17:58:50

标签: python-3.x import module python-import

我在python 3中有两个模块algorithm.py和main.py我正在尝试从算法将一个类导入main并将一个函数和一个变量导入算法。我的目录很简单,看起来像这样:

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

尝试了多种解决方案但没有任何效果后,我收到了ModuleNotFoundError。

我尝试过的是: How to import the class within the same directory or sub directory?

Import a file from a subdirectory?

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 :(得分:-1)

嗯。从来没有尝试过和初学者,所以这可能不起作用,但尝试

from .main import canvas and number_list

或者如果您使用的是旧版本

from .main import canvas && number_list

此外,如果您想要该模块中的所有功能,请尝试

from .main import *

请注意,由于我是初学者,因此这些功能可能不起作用