【发布时间】:2010-04-19 17:48:51
【问题描述】:
好的,我的一个项目中有一些相当奇怪的行为,我希望有人能告诉我原因。我的文件结构如下:
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
使用通配符导入时,我没有收到回溯,我的应用程序打开了。
【问题讨论】:
-
您能否提供使用命名导入时获得的实际回溯?
-
请指出“这不起作用”是什么意思。你真的是在第一种情况下导入 RPMWindow 吗?
标签: python import wildcard named