【问题标题】:Why doesn't Google Translate work when invoked from Python? [closed]为什么从 Python 调用 Google 翻译不起作用? [关闭]
【发布时间】:2020-12-31 20:44:26
【问题描述】:

我正在尝试运行一个非常简单的 Python 代码,该代码应该将一个单词从法语翻译成英语。代码如下。

from googletrans import Translator
translate = Translator()
result = Translator.translate(text='Bonjour', src='fr', dest='en')
print(result.text)

当我从 Pycharm 编辑器(使用 Python 3)中运行代码时,会产生错误:

TypeError: translate() 缺少 1 个必需的位置参数:'self'

这里有什么问题?

【问题讨论】:

标签: python typeerror


【解决方案1】:

问题在于,在Translator.translate( 中,第一个t 是大写的or,而不是附加的e

正如您在docs 中看到的那样,translate = Translator() 创建了一个 Translator 实例。

.translate() 是您的变量/实例 translate 的方法,而不是 Translator 类的方法

大小写很重要。

完整代码:

from googletrans import Translator
translate = Translator()
result = translate.translate(text='Bonjour', src='fr', dest='en')
print(result.text)

【讨论】:

  • 问题还在于Translator 中的e 拼写错误为or
  • 确实如此。我添加了你的建议。谢谢!
  • 您上面的代码建议会产生这个新错误:AttributeError: 'NoneType' object has no attribute 'group'
  • 可以验证。这似乎是googletrans-package 中的某种错误。请参阅googletrans stopped working with error 'NoneType' object has no attribute 'group' 在文档中它应该可以工作。祝你好运。
  • 安装这个特定版本对我有用 pip install googletrans==3.1.0a0 试试看
【解决方案2】:

现在可以使用 google_trans_new:

from google_trans_new import google_translator
translate = google_translator()
result = translate.translate(text='Bonjour', lang_tgt = 'en')
print(result)

非常感谢您的建议。

【讨论】:

  • 很高兴问题解决了。但是请不要用另一个答案来回复答案。只需accept and upvote 最佳答案。
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 2018-02-15
  • 2018-02-15
  • 2017-12-13
  • 1970-01-01
相关资源
最近更新 更多