2017-04-20 104 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