2017-01-21 12 views
0

Google App Engine for PythonのPolly APIにboto3を使用しようとしています。 これまでのところ、私はGAE for Pythonのboto3を使用

pip install -t lib boto3 

私のlibサブディレクトリにboto3をインストールしている私は、スタンドアロンのスクリプトを実行すると、私は私のDEVのサーバー上で私のアプリでboto3.client(...)を実行したとき、それはよく を実行します。しかし、私はbotocore/session.pyからのエラーを取得する:

from _winreg import OpenKeyEx, QueryValueEx, CloseKey, HKEY_LOCAL_MACHINE 
ImportError: No module named _winreg 

私は_winregモジュールは

利用できないこと、正常であるように、GAEをサンドボックス化されたとして、誰もがboto3上のインストールの経験を持っていないことを見てきましたGAEをDE上で実行させるVとPRODサーバー?

また、Polly APIを使用する別の方法がありますか?

_winregエラーの下@サイモン・ピエールによって答えとしてはconfig_appengine.pyを編集して追加することによって解決することができます。

import sys 
sys.plateform='linux3' 

をしかし、私は別の問題

のPython NameErrorでrunned:グローバル名'ssl'は定義されていません。

libraries: 
- name: ssl 
    version: 2.7.11 

をしてから、Windows上のGAEに固有の別の問題来る:これを解決するには、app.yamlを編集し、SSLを通じ有効にする必要が_ssl輸入RAND_egdからははImportErrorを作る:名前RAND_egdをインポートすることはできません。 sochet.py

に説明socket.pyの変更は、それを解決することができます: https://code.google.com/p/googleappengine/issues/detail?id=12783

そして、私は今の修正を発見していない究極の問題は来る:DEVのサーバー上で

を、AWSの回答:DEV GAEから呼び出されたときにclient.describe_voices( 'en-US')の呼び出しにConnectionError:( 'Connection aborted。'、error(13、 'Permission denied'))が返されましたが、同じスクリプトがスタンドアロン。

私はPayPalのSDKとPayPalためのソリューションでこの種の問題への参照を発見したが、誰もがAWSのソリューションは、

https://github.com/paypal/PayPal-Python-SDK/issues/66

任意のアイデアをboto3たのでしょうか?

+0

あなたが共有することができ、より完全なトレースバックを持っていますか? –

答えて

2

回避策:

import sys 
sys.platform = 'linux3' 

問題は、App Engineの開発サンドボックス化された環境とブロック_winregモジュールを使用することである:あなたのappengine_config.pyファイルで、sys.platform値を変更します。 (出典:https://stackoverflow.com/a/28653565/902751)のApp Engine Googleグループからthis commentによると

With Python version >= 2.7.4, sys.platform is not explicitly set to 'linux3' in the dev_appserver sanbox environment in Windows since App Engine SDK >= 1.9.34. [...] Unfortunately, the original sandbox.py code of sys.platform = 'linux3' was in place for compatibility with older systems.

+0

これは確実に_winregの問題を解決します。しかし残念ながら、boto3のインストール全体を解決しません – frank

関連する問題