Приложение Food Recipe на Python с использованием Edamam API не будет работать ⇐ Python
-
Гость
Приложение Food Recipe на Python с использованием Edamam API не будет работать
Пожалуйста, помогите. Я сейчас новичок в программировании и не могу заставить работать пример программы. Я смотрел видео о том, как создать приложение для поиска рецептов на Python с использованием Tkinter и Edamam API, но каждый раз, когда я ввожу ключевое слово для поиска в графическом интерфейсе, оно продолжает показывать ошибки.
Исключение в обратном вызове Tkinter Traceback (последний вызов последний): Файл «C:\Users\65978\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py», строка 1948, в __call__ вернуть self.func(*args) ^^^^^^^^^^^^^^^^^ Файл «c:\Users\65978\Downloads\recipeApp.py», строка 42, в __run_search_query рецепт = self.__get_recipe(запрос) ^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «c:\Users\65978\Downloads\recipeApp.py», строка 69, в __get_recipe для рецепта в query_result: Файл «C:\Users\65978\AppData\Local\Programs\Python\Python311\Lib\site-packages\py_edamam\__init__.py», строка 101, в search_recipe Рецепт получения (edamam=self, **data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ошибка типа: Recipe.__init__() получил неожиданный аргумент ключевого слова «cuisineType». Это код:
из io import BytesIO из PIL импортировать изображение, ImageTk из py_edamam импортировать PyEdamam запросы на импорт импортировать tkinter как tk импорт веб-браузера WINDOW_TITLE = "Приложение рецептов" RECIPE_IMAGE_WIDTH = 350 RECIPE_IMAGE_HEIGHT = 300 класс RecipeApp(объект): def __init__(self, рецепт_app_id, рецепт_app_key): self.recipe_app_id = рецепт_app_id self.recipe_app_key = рецепт_app_key self.window = tk.Tk() # Автоматическое изменение размера геометрии self.window.geometry("") self.window.configure(bg="#9ddfd3") self.window.title(WINDOW_TITLE) self.search_label = tk.Label(self.window, text = "Поиск рецепта", bg = "#ea86b6") self.search_label.grid(столбец = 0, строка = 0, Padx = 5) self.search_entry = tk.Entry(master = self.window, ширина = 40) self.search_entry.grid(столбец = 1, строка = 0, Padx = 5, Pady = 10) self.search_button = tk.Button(self.window, text = "search",highlightbackground = "#ea86b6", команда = self.__run_search_query) self.search_button.grid(столбец = 2, строка = 0, Padx = 5) защита __run_search_query(self): запрос = self.search_entry.get() рецепт = self.__get_recipe(запрос) если рецепт: рецепт_изображение = рецепт.изображение рецепт_url = рецепт.url еще: # Рецепт не найден рецепт_изображение = "https://www.mageworx.com/blog/wp-conten ... und-13.jpg" рецепт_url = "" self.__show_image(recipe_image) self.__get_ingredients(рецепт) защита __open_link(): webbrowser.open(recipe_url) self.recipe_button = tk.Button(self.window, text = "ссылка на рецепт", Highlightbackground = "#ea86b6", команда = __open_link) self.recipe_button.grid(столбец = 1, строка = 7, пади = 10) def __get_recipe(сам, запрос): edamam_object = PyEdamam(recipes_appid=self.recipe_app_id, рецепты_appkey=self.recipe_app_key) query_result = edamam_object.search_recipe(запрос) # Получить первый рецепт в списке для рецепта в query_result: рецепт возврата def __show_image(self, image_url): ответ = Requests.get(image_url) img = Image.open(BytesIO(response.content)) img = img.resize((RECIPE_IMAGE_WIDTH, RECIPE_IMAGE_HEIGHT)) изображение = ImageTk.PhotoImage(img) держатель = tk.Label(self.window, image = image) Holder.photo = изображение Holder.grid(столбец=1, строка=6, пади=10) def __get_ingredients(сам, рецепт): ингредиенты = tk.Text(master = self.window, высота = 15, ширина = 50, bg = "#ffdada") Ings.grid(столбец=1,строка=4,пади=10) ингредиенты.delete("1.0", tk.END) если рецепт == Нет: Ings.insert(tk.END, «Рецепт не найден по критериям поиска») возвращаться ингредиенты.вставка(tk.END, "\n" + рецепт.метка + "\n") для ингредиента в рецепте.ingredient_names: Ings.insert(tk.END, "\n- " + ингредиент) защита run_app (сам): self.window.mainloop() возвращаться # Создайте приложение и запустите его если __name__ == "__main__": #Ключи API APP_ID = "7e13a19a" #Укажите идентификатор вашего приложения для edamam API APP_KEY = "6261e50464c0c2afb984da19d3bffe51" #Поместите ключ приложения для API Edamam рецепт_приложение = РецептПриложение(APP_ID, APP_KEY) рецепт_app.run_app()
Пожалуйста, помогите. Я сейчас новичок в программировании и не могу заставить работать пример программы. Я смотрел видео о том, как создать приложение для поиска рецептов на Python с использованием Tkinter и Edamam API, но каждый раз, когда я ввожу ключевое слово для поиска в графическом интерфейсе, оно продолжает показывать ошибки.
Исключение в обратном вызове Tkinter Traceback (последний вызов последний): Файл «C:\Users\65978\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py», строка 1948, в __call__ вернуть self.func(*args) ^^^^^^^^^^^^^^^^^ Файл «c:\Users\65978\Downloads\recipeApp.py», строка 42, в __run_search_query рецепт = self.__get_recipe(запрос) ^^^^^^^^^^^^^^^^^^^^^^^^^ Файл «c:\Users\65978\Downloads\recipeApp.py», строка 69, в __get_recipe для рецепта в query_result: Файл «C:\Users\65978\AppData\Local\Programs\Python\Python311\Lib\site-packages\py_edamam\__init__.py», строка 101, в search_recipe Рецепт получения (edamam=self, **data) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ошибка типа: Recipe.__init__() получил неожиданный аргумент ключевого слова «cuisineType». Это код:
из io import BytesIO из PIL импортировать изображение, ImageTk из py_edamam импортировать PyEdamam запросы на импорт импортировать tkinter как tk импорт веб-браузера WINDOW_TITLE = "Приложение рецептов" RECIPE_IMAGE_WIDTH = 350 RECIPE_IMAGE_HEIGHT = 300 класс RecipeApp(объект): def __init__(self, рецепт_app_id, рецепт_app_key): self.recipe_app_id = рецепт_app_id self.recipe_app_key = рецепт_app_key self.window = tk.Tk() # Автоматическое изменение размера геометрии self.window.geometry("") self.window.configure(bg="#9ddfd3") self.window.title(WINDOW_TITLE) self.search_label = tk.Label(self.window, text = "Поиск рецепта", bg = "#ea86b6") self.search_label.grid(столбец = 0, строка = 0, Padx = 5) self.search_entry = tk.Entry(master = self.window, ширина = 40) self.search_entry.grid(столбец = 1, строка = 0, Padx = 5, Pady = 10) self.search_button = tk.Button(self.window, text = "search",highlightbackground = "#ea86b6", команда = self.__run_search_query) self.search_button.grid(столбец = 2, строка = 0, Padx = 5) защита __run_search_query(self): запрос = self.search_entry.get() рецепт = self.__get_recipe(запрос) если рецепт: рецепт_изображение = рецепт.изображение рецепт_url = рецепт.url еще: # Рецепт не найден рецепт_изображение = "https://www.mageworx.com/blog/wp-conten ... und-13.jpg" рецепт_url = "" self.__show_image(recipe_image) self.__get_ingredients(рецепт) защита __open_link(): webbrowser.open(recipe_url) self.recipe_button = tk.Button(self.window, text = "ссылка на рецепт", Highlightbackground = "#ea86b6", команда = __open_link) self.recipe_button.grid(столбец = 1, строка = 7, пади = 10) def __get_recipe(сам, запрос): edamam_object = PyEdamam(recipes_appid=self.recipe_app_id, рецепты_appkey=self.recipe_app_key) query_result = edamam_object.search_recipe(запрос) # Получить первый рецепт в списке для рецепта в query_result: рецепт возврата def __show_image(self, image_url): ответ = Requests.get(image_url) img = Image.open(BytesIO(response.content)) img = img.resize((RECIPE_IMAGE_WIDTH, RECIPE_IMAGE_HEIGHT)) изображение = ImageTk.PhotoImage(img) держатель = tk.Label(self.window, image = image) Holder.photo = изображение Holder.grid(столбец=1, строка=6, пади=10) def __get_ingredients(сам, рецепт): ингредиенты = tk.Text(master = self.window, высота = 15, ширина = 50, bg = "#ffdada") Ings.grid(столбец=1,строка=4,пади=10) ингредиенты.delete("1.0", tk.END) если рецепт == Нет: Ings.insert(tk.END, «Рецепт не найден по критериям поиска») возвращаться ингредиенты.вставка(tk.END, "\n" + рецепт.метка + "\n") для ингредиента в рецепте.ingredient_names: Ings.insert(tk.END, "\n- " + ингредиент) защита run_app (сам): self.window.mainloop() возвращаться # Создайте приложение и запустите его если __name__ == "__main__": #Ключи API APP_ID = "7e13a19a" #Укажите идентификатор вашего приложения для edamam API APP_KEY = "6261e50464c0c2afb984da19d3bffe51" #Поместите ключ приложения для API Edamam рецепт_приложение = РецептПриложение(APP_ID, APP_KEY) рецепт_app.run_app()
Мобильная версия