TypeError: Translator.translate() 缺少一个必需的位置参数: 'text

-3 投票
1 回答
54 浏览
提问于 2025-04-13 02:35

我正在按照这个教程,用Python的googletrans库把西班牙语翻译成英语,但我遇到了这个错误:

TypeError: Translator.translate() 缺少一个必要的位置参数:'text'

我使用的是googletrans 3.0.0和Python 3.10.6

这是我的代码:

from googletrans import Translator, constants

translation = Translator.translate("Hola Mundo", dest="en")
print(f"{translation.origin} ({translation.src}) --> {translation.text} ({translation.dest})")

我已经尝试过使用Translator.translate(text="Hola Mundo", dest="en")

还有这个回答对我没有用,我反而得到了这个错误:

AttributeError: 'NoneType' object has no attribute 'group'

我按照这个教程切换到了googletrans==3.1.0a0,但错误依然存在

任何帮助都将不胜感激。

1 个回答

1

你链接的那个答案是对的,你代码的问题正如所描述的那样:你是直接从类里调用方法,而不是先创建一个实例。

以后记住,在Python中,类的名字通常是用大写字母开头的驼峰式写法,没有下划线(比如 TranslatorDataFrame),而像类的实例这样的变量名则是小写字母加下划线(比如 translatornum_entries)。我们通常(虽然不是总是)是在类的实例上调用类的方法。

这个例子的正确代码是:

from googletrans import Translator, constants

translator = Translator()
translation = translator.translate("Hola Mundo", dest="en")
print(f"{translation.origin} ({translation.src}) --> {translation.text} ({translation.dest})") 

注意,translator 是类 Translator 的一个实例。

我在用 googletrans-3.0.0 运行这段代码时也遇到了 AttributeError: 'NoneType' object has no attribute 'group' 的错误,但当我运行 pip3 install googletrans==3.1.0a0 时就没问题了。

我建议你再检查一下你安装的googletrans版本。如果不确定,可以运行 pip list 来确认你安装的版本,然后再运行上面的代码。

输出:

Hola Mundo (es) --> Hello World (en)

撰写回答