导入模块,该模块在Python中导入另一个模块

时间:2020-10-15 12:23:15

标签: python import module

我目前正在尝试重写一个旧的应用程序,并且因为第一件事,我想稍微清理一下结构。我在导入模块时遇到了问题,并且我已经用尽了在网络上找到的一些选项,因此现在该寻求帮助了。

相关结构为:

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的命名空间中吗?

1 个答案:

答案 0 :(得分:0)

这不适合评论,但是您可以尝试以下吗?

mainWindow.py

from interface import darkMotive

app.py

from interface.mainWindow import mainWindow

您可能想重命名mainWindow.py,因为它与类名冲突。