好吧,我的一個項目中有一些相當奇怪的行爲,我希望有人能告訴我爲什麼。我的文件結構如下所示:Python通配符導入與命名導入
MainApp.py
res/
__init__.py
elements/
__init__.py
MainFrame.py
MainFrame.py內部我定義了一個名爲RPMWindow的類,它擴展了wx.Frame。
在MainApp.py這個工程:
from res.elements.MainFrame import *
這並不:
from res.elements.MainFrame import RPMWindow
我意識到通配符進口不會傷害任何東西,但我更感興趣的是理解當通配符成功時爲什麼命名導入失敗。
當使用類的名字,我得到這個回溯:
Traceback (most recent call last):
File "C:\myApps\eclipse\plugins\org.python.pydev.debug_1.5.6.2010033101\pysrc\pydevd.py", line 953, in <module>
debugger.run(setup['file'], None, None)
File "C:\myApps\eclipse\plugins\org.python.pydev.debug_1.5.6.2010033101\pysrc\pydevd.py", line 780, in run
execfile(file, globals, locals) #execute the script
File "C:\Documents and Settings\Daniel\workspace\RPM UI - V2\src\MainApp.py", line 2, in <module>
from res.elements.MainFrame import RPMWindow
File "C:\Documents and Settings\Daniel\workspace\RPM UI - V2\src\res\elements\MainFrame.py", line 2, in <module>
from res.elements.MenuBar import MenuBarBuilder
File "C:\Documents and Settings\Daniel\workspace\RPM UI - V2\src\res\elements\MenuBar.py", line 2, in <module>
from MainApp import _, DataCache
File "C:\Documents and Settings\Daniel\workspace\RPM UI - V2\src\MainApp.py", line 2, in <module>
from res.elements.MainFrame import RPMWindow
ImportError: cannot import name RPMWindow
當使用通配符輸入我沒有收到回溯和我的應用程序打開。
您能否提供使用命名導入時獲得的實際回溯? – 2010-04-19 17:52:46
請指出「這不起作用」的含義。第一種情況下你是否真的進口了RPMWindow? – joaquin 2010-04-19 17:53:25