循环“导入xyz as abc”

时间:2017-07-20 17:03:52

标签: python import module cyclic

当我尝试在Python 3中进行循环导入时遇到问题。我正在编写一个PyQt4应用程序,我想在整个应用程序中提供一些对象。这样我最终得到了一些文件:

index.py

import source.blab as bl

源/ blab.py

import source.windows
windows = source.windows.Windows()

源/ windows.py

import source.window_clients.main_window

class Windows:
    ...

源/ window_clients / main_window.py

import source.blab

class MainWindow(QWidget):
    ...

到目前为止,代码有效。但是,出于审美原因,我想将main_window.py中的import命令更改为

import source.blab as bl

抛出

AttributeError: module 'source' has no attribute 'blab'

我确信,这与Circular (or cyclic) imports in Python有关,他们说在循环导入中不能使用“来自*导入b”。 “导入a为b”是否相同?如果是这样,是否有其他方法可以更改导入模块的名称?

祝你好运!

1 个答案:

答案 0 :(得分:0)

这似乎已知bug已知fixed now。 原因与在不同情况下如何实施import语句有关。