TypeError: Translator.translate() 缺少一个必需的位置参数: 'text
我正在按照这个教程,用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中,类的名字通常是用大写字母开头的驼峰式写法,没有下划线(比如 Translator
,DataFrame
),而像类的实例这样的变量名则是小写字母加下划线(比如 translator
,num_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)