Ale*_*x_P 5 python attributeerror python-3.x
所有文件都在'venv'目录中
我将代码分成五个单独的文件.一个'主'文件,收集所有其他文件并最终创建GUI.文件的前缀是"注意",后面是适当的描述.
我现在的问题是将'NoteTopMenu'导入主文件'NoteMainApp'.代码是:
import NoteStatusbar as SB
import NoteTopMenu as TM
import NoteWidgets as NW
import tkinter as tk
class MainApp(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self,parent)
super().__init__(parent)
self.topbar = TM.TopMenu(parent)
self.widget = NW.FrontFrames(parent)
self.statusbar = SB.StatusBar(parent)
root = tk.Tk()
MainApp(root).pack(side="top", fill="both")
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
Traceback (most recent call last):
File "C:/Users/PycharmProjects/MindNotez/NoteMainApp.py", line 2, in <module>
import NoteTopMenu as TM
File "C:\Users\PycharmProjects\MindNotez\NoteTopMenu.py", line 2, in <module>
import NoteMainApp as Main
File "C:\Users\PycharmProjects\MindNotez\NoteMainApp.py", line 29, in <module>
MainApp(root).pack(side="top", fill="both")
File "C:\Users\PycharmProjects\MindNotez\NoteMainApp.py", line 13, in __init__
self.topbar = TM.TopMenu(parent)
Run Code Online (Sandbox Code Playgroud)
AttributeError:模块'NoteTopMenu'没有属性'TopMenu'
NoteTopMenu中的代码是:
import NoteMainApp as Main
import NoteWidgets as NW
import tkinter as tk
class TopMenu(NW.FrontFrames):
"""Class creating the top menu bar."""
def __init__(self, master):
super().__init__(master)
# *******Top-Navigation Bar (tnb)**********
tnb = tk.Menu(master)
Main.root.config(menu=tnb)
....
Run Code Online (Sandbox Code Playgroud)
如果我在主文件中注释NoteTopMenu,代码运行没有问题.我检查了我的拼写,但PyCharm也提供了代码完成.因此,PyCharm发现文件,模块,我的类和其他模块都是导入的,没有问题.你知道为什么没有找到文件/模块或导入失败?
完整代码在GitHub上:MindNotez
非常感谢您的帮助!
您调用NoteMainApp.py其进口NoteTopMenu.py的进口这NoteMainApp.py其中也没有去重新导入NoteTopMenu.py(因为进口已经开始).然后导入NoteMainApp.py继续解析文件的其余部分.此时模块NoteTopMenu已定义,但它没有任何属性(因为你尚未定义它们)...因此错误.
我建议NoteTopMenu.py不要导入NoteMainApp.py(如果有两个文件需要的位,它们应该被移动到另一个可以导入的文件中)
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |