частично инициализированный модуль «приложение» не имеет атрибута «excute_job_search» (скорее всего, из-за циклического импорта)

#python #user-interface #tkinter #module-export

Вопрос:

Я пытаюсь заполнить параметры, чтобы использовать их в приложении с помощью пользовательского ввода, например, адрес электронной почты, имя и т. Д., Когда я импортировал app.py чтобы gui.py и экспорт gui.py чтобы app.py У меня была эта ошибка по поводу циклического импорта

 AttributeError: partially initialized module 'app' has no attribute 'excute_job_search' (most likely due to a circular import)
 

код выглядит следующим образом

 from tkinter import *
import app

def get_input():
    email = e1.get()
    password = e2.get()
    number_of_jobs = e3.get()
    job_title = e4.get()
    location = e5.get()
    print(email, password, number_of_jobs, job_title, location)

b = Button(window, text="Confirm", width=10, command=get_input)
b1 = Button(window, text="Excute", width=12, command=app.excute_job_search)
 

Комментарии:

1. где вы творите window ?

2. почему вы экспортируете GUI в app.py ? Это неверная идея. Вы должны использовать GUI только в файле gui.py , а затем вам не нужно импортировать его app.py . Что у тебя там внутри app.py ? Или вы должны поместить весь графический интерфейс в функции, которые получают ожидаемые значения в качестве аргумента, и тогда вам не нужно импортировать app.py . А затем вы можете импортировать его в app.py и запустить в app

3. import * не рекомендуется — см. Подробнее PEP 8 — Руководство по стилю для кода Python

4. в графическом интерфейсе. py, который вы используете e1 e2 , и т.д. которые, вероятно, не созданы в gui.py — это тоже неправильная идея. Вы должны держать весь графический интерфейс внутри gui.py .