Microsoft переводит с помощью python?

#python #translate

Вопрос:

Я использую библиотеку Microsoft python по умолчанию для перевода текста, но каждый раз, когда я пробовал ее, она выдавала ошибку

 # -*- coding: utf-8 -*-

# This simple app uses the '/translate' resource to translate text from
# one language to another.

# This sample runs on Python 2.7.x and Python 3.x.
# You may need to install requests and uuid.
# Run: pip install requests uuid

import os, requests, uuid, json

key_var_name = 'TRANSLATOR_TEXT_SUBSCRIPTION_KEY'
if not key_var_name in os.environ:
    raise Exception('Please set/export the environment variable: {}'.format(key_var_name))
subscription_key = os.environ[key_var_name]

endpoint_var_name = 'TRANSLATOR_TEXT_ENDPOINT'
if not endpoint_var_name in os.environ:
    raise Exception('Please set/export the environment variable: {}'.format(endpoint_var_name))
endpoint = os.environ[endpoint_var_name]

# If you encounter any issues with the base_url or path, make sure
# that you are using the latest endpoint: https://docs.microsoft.com/azure/cognitive-services/translator/reference/v3-0-translate
path = '/translate?api-version=3.0'
params = 'amp;from=enamp;to=deamp;to=it'
constructed_url = endpoint   path   params

headers = {
    'Ocp-Apim-Subscription-Key': subscription_key,
    'Content-type': 'application/json',
    'X-ClientTraceId': str(uuid.uuid4())
}

# You can pass more than one object in body.
body = [{
    'text' : 'Hello World!'
}]
request = requests.post(constructed_url, headers=headers, json=body)
response = request.json()

print(json.dumps(response, sort_keys=True, indent=4, separators=(',', ': ')))
 

после добавления секретного ключа и конечной точки, предоставленной azure, я получил эту ошибку

 Traceback (most recent call last):
  File "C:UserssetoCodesPythontranslationmain.py", line 14, in <module>
    raise Exception('Please set/export the environment variable: {}'.format(key_var_name))
Exception: Please set/export the environment variable:
 

Комментарии:

1. в cmd.exe, можете ли вы проверить содержимое с помощью echo %TRANSLATOR_TEXT_SUBSCRIPTION_KEY% и echo %TRANSLATOR_TEXT_ENDPOINT% ? Очевидно, что не публикуйте здесь содержимое, а просто проверьте его на вменяемость

2. когда я попробовал echo %TRANSLATOR_TEXT_SUBSCRIPTION_KEY% , он печатает %TRANSLATOR_TEXT_SUBSCRIPTION_KEY% без значений

3. Затем вам нужно настроить эти переменные среды с требуемыми значениями. Вам также, вероятно, потребуется подписаться на услугу (платную или бесплатную) и получить соответствующий ей API-ключ.

4. я уже зарегистрировался и получил секретный ключ, как установить эти переменные среды в Windows ? я попробовал использовать расширенные настройки со своего компьютера и добавил их, но проблема все еще присутствует

Ответ №1:

мне удалось решить эту проблему, удалив переменные среды и просто используя локальные переменные

 # -*- coding: utf-8 -*-

# This simple app uses the '/translate' resource to translate text from
# one language to another.

# This sample runs on Python 2.7.x and Python 3.x.
# You may need to install requests and uuid.
# Run: pip install requests uuid

import os, requests, uuid, json

key_var_name = 'XXXXXXXXXXXXXXX'
subscription_key = key_var_name

endpoint_var_name = 'https://api.cognitive.microsofttranslator.com/'
endpoint = endpoint_var_name

# If you encounter any issues with the base_url or path, make sure
# that you are using the latest endpoint: https://docs.microsoft.com/azure/cognitive-services/translator/reference/v3-0-translate
path = '/translate?api-version=3.0'
params = 'amp;from=enamp;to=ar'
constructed_url = endpoint   path   params

headers = {
    'Ocp-Apim-Subscription-Key': subscription_key,
    'Ocp-Apim-Subscription-Region': "francecentral",
    'Content-type': 'application/json',
    'X-ClientTraceId': str(uuid.uuid4())
}

# You can pass more than one object in body.
body = [{
    'text' : 'Hello World!'
}]
request = requests.post(constructed_url, headers=headers, json=body)
response = request.json()