无法弄清楚如何解决这个循环导入

Can't figure out how to solve this circular import

我将一些功能拆分到一个单独的文件中。找到函数和辅助函数。设置所有路径并导入其他文件,以便在必要时仍然可以调用所有内容。但是从原始文件中删除未使用的导入后,它似乎会出现循环导入错误。

所以有一个未使用的导入,虽然在那里,每个测试 (524) 都成功,但由于未使用的导入,无法推送分支。如果我们删除导入,我认为测试将进入循环导入并且根本不会开始。

我尝试的第一件事是更改有关导入语句:from /module import /object --> import module

这使测试开始,但之后一切都出错了。

在那之后,我试图通过循环导入路径找到一种方法,但我只是忘记了一切,我什至不知道它是否是一个解决方案。

`

Traceback (most recent call last):
    File "/home/user/../.py", line 2, in <module>
    from x.model import x
    File "/home/user/../.py", line 1, in <module>
    import A
    File "/home/user/../.py", line 4, in <module>
    import B
    File "/home/user/../.py", line 1, in <module>
    import C
    File "/home/user/../.py", line 9, in <module>
    import D
    File "/home/user/../.py", line 4, in <module>
    import E
    File "/home/user/../.py", line 9, in <module>
    from x.model import x
ImportError: cannot import name 'x'
`

如果您在 /home/user/projects/.../nsx/utils.py 文件中使用导入的 Ive,在某些方法或函数中,那么您应该从文件导入语句的顶部删除导入语句(即 from ive.models import Ive)(如果你这样做),动态导入意味着将导入语句放在方法或函数中使用 Ive 的地方。

# Assume `/home/user/projects/.../nsx/utils.py` file

# Don't import Ive here
# from ive.models import Ive

def func():
     # import here
    from ive.models import Ive
    # use Ive here