我目前正在尝试重写一个旧的应用程序,并且因为第一件事,我想稍微清理一下结构。我在导入模块时遇到了问题,并且我已经用尽了在网络上找到的一些选项,因此现在该寻求帮助了。
相关结构为:
root/
__init__.py
app.py
interface/
__init__.py
darkMotive.py
mainWindow.py
app.py
import interface.mainWindow
if __name__ == "__main__":
root = tk.Tk()
main = mainWindow(root)
title = root.title("app")
main.pack(side="top", fill="both", expand=True)
root.mainloop()
mainWindow.py
import darkMotive
import tkinter as tk
class mainWindow(tk.Frame):
def __init__(self, *args, **kwargs):
[rest of the code]
darkMotive.py
import tkinter as tk
[other classes definitions]
我的问题是,当我尝试运行app.py时,出现此错误:
Traceback (most recent call last):
File "X:/x/xxx/app.py", line 2, in <module>
import interface.mainWindow
File "X:\x\xxx\interface\mainWindow.py", line 1, in <module>
import darkMotive
ModuleNotFoundError: No module named 'darkMotive'
但是当我单独运行mainWindow.py时,它可以工作。
我做错了什么?你能指出我正确的方向吗?不应将darkMotive模块与mainWindow一起导入到app.py的命名空间中吗?
答案 0 :(得分:0)
这不适合评论,但是您可以尝试以下吗?
mainWindow.py
from interface import darkMotive
app.py
from interface.mainWindow import mainWindow
您可能想重命名mainWindow.py
,因为它与类名冲突。