Python从交叉引用包导入

时间:2009-05-02 18:46:15

标签: python

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

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

from myapp.models import *

以下是我的包myapp.models:

from myapp.factories import *

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

NameError: global name 'MyModelFactory' is not defined

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

1 个答案:

答案 0 :(得分:5)

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

class SomeModel:
    def some_method(self):
        from myapp.factories import SomeFactory
        SomeFactory().do_something()