Python从交叉引用包导入

B.E*_*.E. 0 python

目前我正在尝试编写我的第一个Python库,但我遇到了以下问题:

我的包myapp.factories中有以下导入:

from myapp.models import *
Run Code Online (Sandbox Code Playgroud)

以下是我的包myapp.models:

from myapp.factories import *
Run Code Online (Sandbox Code Playgroud)

我需要工厂包中的模型,但在一个模型中我还需要一个工厂.如果我现在调用需要工厂的代码,我会收到以下错误:

NameError: global name 'MyModelFactory' is not defined
Run Code Online (Sandbox Code Playgroud)

我很确定它与脚本加载的顺序有关,但我似乎无法弄清楚如何让这些交叉引用工作.

Ric*_*dle 5

"在一个模型中我还需要一个工厂" - 只需在您需要的地方导入该工厂:

class SomeModel:
    def some_method(self):
        from myapp.factories import SomeFactory
        SomeFactory().do_something()
Run Code Online (Sandbox Code Playgroud)