1

我们有一个非常大的 python 项目(200 多个文件)

到目前为止,我一直在很好地处理它的依赖关系,在一些地方使用了项目的一些新部分和来自另一个模块的现有部分,它足够简单,可以确保所有内容都以正确的顺序导入。

但是现在当子包中的模块需要另一个子包中的模块时,我遇到了麻烦

来说明一下这个简化的版本

文件系统

Core
|__init__.py
|Database
-|__init__.py
-|Dialogs
--|__init__.py
--|SomeDialog.py
-|Controls
--|__init__.py
--|SomeControl.py
|Frame.py

现在如果我通过这个语句 SomeControl.py导入文件中的类在 哪里SomeDialog.pyfrom Core.Dialogs.SomeDialog import SomeDialogSomeDialogSomedialog

当我进入import Core主应用程序时,出现“核心”没有模块“数据库”的错误

我怎样才能解决这个问题?

4

1 回答 1

0

这个案例命名为“循环进口”。您可以在需要使用它们的函数和方法中导入模块。

# SomeDialog.py
class Dialog(object):
    def draw(self):
        from ..Controls.SomeControl import control
        control()

# SomeControl.py
def control():
    from ..Dialogs.SomeDialog import all_dialogs
    do_something(all_dialogs)
于 2013-05-20T02:12:44.437 回答