- Я использую PyCharm
Все файлы находятся в каталоге 'venv'
- venv
- NoteFunction.py
- NoteMainApp.py
- ...
Я разделил свой код на пять отдельных файлов. Один «главный» файл, собирающий все остальные файлы и создающий в конечном итоге графический интерфейс. Префикс для файлов: «Примечание» и соответствующее описание.
Моя проблема сейчас заключается в импорте 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()
Я получаю сообщение об ошибке:
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)
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)
....
Если я закомментирую NoteTopMenu в основном файле, код запускается без проблем. Я проверил орфографию, но PyCharm также предлагает мне завершение кода. Поэтому PyCharm находит файл, модуль, мой класс и другие модули импортируются без проблем. Знаете ли вы, почему файл / модуль не найден или не может быть импортирован?
Полный код здесь на GitHub: MindNotez
Большое спасибо за помощь!