2017-04-20 72 views
1

我对Python很陌生。我正在尝试亚马逊波利文本到语音模块。我在Windows 10上运行这个。已经阅读亚马逊文档,但我现在很迷茫..很抱歉,我的英文不太好。Amazon Polly Profile未找到:无法找到配置文件(adminuser)

我的代码如下。

"""Getting Started Example for Python 2.7+/3.3+""" 
from boto3 import Session 

from botocore.exceptions import BotoCoreError, ClientError 

from contextlib import closing 
import os 
import sys 
import subprocess 
from tempfile import gettempdir 
# Create a client using the credentials and region defined in the [adminuser] 
# section of the AWS credentials file (~/.aws/credentials). 
session = Session(profile_name="adminuser") 
polly = session.client("polly") 
try: 
# Request speech synthesis 
    response = polly.synthesize_speech(Text="Hello world!", OutputFormat="mp3", 
    VoiceId="Joanna") 
except (BotoCoreError, ClientError) as error: 
# The service returned an error, exit gracefully 
    print(error) 
    sys.exit(-1) 
# Access the audio stream from the response 
if "AudioStream" in response: 
# Note: Closing the stream is important as the service throttles on the 
# number of parallel connections. Here we are using contextlib.closing to 
# ensure the close method of the stream object will be called automatically 
# at the end of the with statement's scope. 
    with closing(response["AudioStream"]) as stream: 
     output = os.path.join(gettempdir(), "speech.mp3") 
    try: 
     # Open a file for writing the output as a binary stream 
     with open(output, "wb") as file: 
      file.write(stream.read()) 
    except IOError as error: 
     print(error) 
     sys.exit(-1) 
else: 
# The response didn't contain audio data, exit gracefully 
    print("Could not stream audio") 
    sys.exit(-1) 
# Play the audio using the platform's default player 
if sys.platform == "win32": 
    os.startfile(output) 
else: 
# the following works on Mac and Linux. (Darwin = mac, xdg-open = linux). 
    opener = "open" if sys.platform == "darwin" else "xdg-open" 
    subprocess.call([opener, output]) 

我在这里有我的凭证文件。 (编辑这个,所以它不是真正的凭据)。在同一个文件夹中,它被保存为配置。我还在同一个文件夹中创建了名为config和boto.config的副本,希望我的名字错误。但无济于事。

[Credentials] 
aws_access_key_id = AKIAIO4GAFVCGZMTZ6WQ 
aws_secret_access_key = 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 

[adminuser] 
aws_access_key_id = AKIAIO4GAFVCGZMTZ6WQ 
aws_secret_access_key = /7KVymkCQbGKI5/E1ifdafsuVCciwOd1WiIImxA 

这是我收到的错误消息。

Traceback (most recent call last): 
    File "C:/Users/joel/Desktop/New folder/test.py", line 11, in <module> 
    session = Session(profile_name="adminuser") 
    File "C:\Python27\lib\site-packages\boto3\session.py", line 80, in __init__ 
    self._setup_loader() 
    File "C:\Python27\lib\site-packages\boto3\session.py", line 120, in _setup_loader 
    self._loader = self._session.get_component('data_loader') 
    File "C:\Python27\lib\site-packages\botocore\session.py", line 701, in get_component 
    return self._components.get_component(name) 
    File "C:\Python27\lib\site-packages\botocore\session.py", line 897, in get_component 
    self._components[name] = factory() 
    File "C:\Python27\lib\site-packages\botocore\session.py", line 181, in <lambda> 
    lambda: create_loader(self.get_config_variable('data_path'))) 
    File "C:\Python27\lib\site-packages\botocore\session.py", line 265, in get_config_variable 
    elif self._found_in_config_file(methods, var_config): 
    File "C:\Python27\lib\site-packages\botocore\session.py", line 286, in _found_in_config_file 
    return var_config[0] in self.get_scoped_config() 
    File "C:\Python27\lib\site-packages\botocore\session.py", line 358, in get_scoped_config 
    raise ProfileNotFound(profile=profile_name) 
ProfileNotFound: The config profile (adminuser) could not be found 
>>> 

任何专家在那里告诉我我应该做些什么?

回答

0

你应该设置在~/.aws/config

[profile adminuser] 
aws_access_key_id = AKIAIO4GAFVCGZMTZ6WQ 
aws_secret_access_key = /7KVymkCQbGKI5/E1ifdafsuVCciwOd1WiIImxA 
0

Boto3寻找要么.aws /凭证文件或认证.boto.config文件。在Windows计算机上,您需要创建一个名为credentials或.boto.config的文件,并将该文件保存在C:\ Users \ USERNAME .aws \ credentials文件夹中。

文件的内容将是

[adminuser] 
aws_access_key_id = AKIAIO4GAFVCGZMTZ6WQ 
aws_secret_access_key = /7KVymkCQbGKI5/E1ifdafsuVCciwOd1WiIImxA