我使用的是Python 3.6和谷歌云翻译包。
from google.cloud import translate_v3 as translate
client = translate.TranslationServiceClient(credentials = credentials)
parent = client.location_path("my-location", "global")
从昨天开始,在更新了库之后,我收到了这个错误:
AttributeError: 'TranslationServiceClient' object has no attribute 'location_path'
是这些图书馆变了吗?传递此询问的正确方式是什么?
也遇到了这种情况。并不是所有的文档都已经更新,但他们已经发布了迁移指南:
https://googleapis.dev/python/translation/latest/UPGRADING.html
你可以用"projects/<PROJECT_ID>/locations/<LOCATION>"
代替parent
或定义
def location_path(project_id, location):
# might as well use an f-string, the new library supports python >=3.6
return f"projects/{project_id}/locations/{location}"
如果这是您在许多位置使用的内容,请将client.location_path
更改为location_path
。
还有更全面的变化。他们现在更喜欢将一个名为request
的字典传递给API方法,尽管旧方法仍然被接受。因此,您的代码可能如下所示:
from google.cloud import translate_v3 as translate
client = translate.TranslationServiceClient(credentials=credentials)
response = client.translate_text(
request={
"parent": "projects/my-location/locations/global",
"target_language_code": target_language_code,
"contents": [text],
}
)
现在,你可能会问"我怎么知道该在请求字典里放什么?"。该库似乎为适用于每种方法的字典提供了类型注释:https://googleapis.dev/python/translation/latest/translate_v3/types.html
例如,我在您对另一个答案的评论中读到,您在detect_language
方法方面遇到了问题。方法签名表明,如果使用关键字arguments,content
应该是有效的,所以我不知道为什么会失败——也许这是一个错误。
但是,如果您使用request
字典,则应该是这样的。您将看到这些关键字似乎与方法签名关键字并不完全对应(尽管content
是其中之一(。
这个代码可以工作:
response = client.detect_language({
"parent": "projects/my-location/locations/global",
"content": "Tá Gaeilge Agam, ach tá mé i mo chonai i Sasana",
})
lang = response.languages[0].language_code
(如您所见,返回类型有些复杂(
我也遇到了同样的问题。我一起去掉了"parent"代码,并将其添加到translate_text方法中。
client = translate.TranslationServiceClient()
response = client.translate_text(
parent = 'projects/{}'.format(project_id),
contents = [text],
mime_type = 'text/plain',
source_language_code = 'en-US',
target_language_code = 'es')
文件:https://googleapis.dev/python/translation/latest/translate_v3/services.html
如果python版本是3.6或3.8,就不会有任何结果我已经通过升级到python3.10然后更新其他谷歌软件包很容易地修复了
google-api-core==2.7.1
google-auth==2.6.4
google-auth-oauthlib==0.4.6
google-cloud-core==2.3.0
google-cloud-translate==3.7.2
google-cloud-vision==2.7.2
google-pasta==0.2.0
googleapis-common-protos==1.56.0
grpcio==1.44.0
grpcio-status==1.44.0