【发布时间】:2021-02-25 06:12:47
【问题描述】:
当我尝试使用 googletrans 模块翻译文本时,出现错误:
httpcore._exceptions.ConnectTimeout: _ssl.c:1106: The handshake operation timed out
这是我的代码:
from tkinter import *
from googletrans import Translator , LANGUAGES
root = Tk()
root.geometry("500x500")
def translate():
translator = Translator()
translated_text = translator.translate(text=entry.get(),
dest=languages_listbox.get(languages_listbox.curselection())) # Text does not get get translated and it throws an error
output_label.config(text = f"Translated Text: {translated_text}")
entry = Entry(root , font = "consolas 14")
entry.place(x = 120 , y = 0)
entry.insert(0 , "Hello world")
languages_list = []
for key, value in LANGUAGES.items():
languages_list.append(value)
languages_listbox_frame = Frame(root)
languages_listbox_frame.place(x = 120 , y = 50)
languages_listbox = Listbox(languages_listbox_frame , font = "calibri 14")
languages_listbox.grid(row = 0 , column = 0)
scrollbar = Scrollbar(languages_listbox_frame , orient = VERTICAL , command = languages_listbox.yview)
scrollbar.grid(row = 0 , column = 1 , sticky = N+S+E+W)
languages_listbox.config(yscrollcommand = scrollbar.set)
for language in languages_list:
languages_listbox.insert(END , language)
languages_listbox.select_set(0)
translate_button = Button(root , text = "Translate" , font = "comicsansms 18 bold" , command = translate)
translate_button.place(x = 160 , y = 370)
output_label = Label(root , text = "Translated Text: " , font = "comicsansms 16 bold")
output_label.place(x = 5 , y = 460)
mainloop()
我的代码很简单,我不知道它有什么问题。
我尝试更改网络连接,但没有任何区别。
有没有办法解决这个问题?
如果有人能帮助我,那就太好了。
【问题讨论】:
-
好像你对API的请求太多了,它已经屏蔽了你的IP地址。
-
看来 tkinter 与问题完全无关。我建议您创建一个minimal reproducible example,它只具有对翻译器的调用以及输入的硬编码值。在尝试让它在 GUI 中工作之前先让它工作。
-
@CoolCloud:如果我发出太多请求,它会阻止我的 IP 地址,是否有任何其他模块或库可以用来翻译文本?
标签: python tkinter google-translation-api