2016-10-07 14 views
1

Authenticating Users on App Engine Using Firebaseチュートリアルをデプロイするために作業しており、これをローカルマシンに正常にデプロイできます。Google App Flexible Engineにデプロイするときにfirebase_helper.pyのCrypto.Utilインポートエラー

私は標準のGoogleのApp Engine上で実行していないいくつかのPythonモジュールをテストしたいと、私は今、app.yamlを

vm: true 

でこの設定を経由して柔軟な環境にこれを導入しようとしていますフロントエンドは柔軟なアプリエンジンにうまくデプロイしますが、firebase_helper.pyのインポート中にバックエンドでエラーが発生します。具体的には、このライン上で窒息さ:

from Crypto.Util import asn1 

生のスタックトレースは以下のとおりです:

libraries: 
- name: ssl 
    version: 2.7.11 
- name: pycrypto 
    version: 2.6.1 

I:

Traceback (most recent call last): 
    File "/home/vmagent/python_vm_runtime/google/appengine/ext/vmruntime/meta_app.py", line 550, in GetUserAppAndServe 
    app, mod_file = self.GetUserApp(script) 
    File "/home/vmagent/python_vm_runtime/google/appengine/ext/vmruntime/meta_app.py", line 411, in GetUserApp 
    app = _AppFrom27StyleScript(script) 
    File "/home/vmagent/python_vm_runtime/google/appengine/ext/vmruntime/meta_app.py", line 271, in _AppFrom27StyleScript 
    app, filename, err = wsgi.LoadObject(script) 
    File "/home/vmagent/python_vm_runtime/google/appengine/runtime/wsgi.py", line 85, in LoadObject 
    obj = __import__(path[0]) 
    File "/home/vmagent/app/main.py", line 22, in <module> 
    import firebase_helper 
    File "/home/vmagent/app/firebase_helper.py", line 20, in <module> 
    from Crypto.Util import asn1 
ImportError: No module named Crypto.Util 

は、pycryptoがすでにapp.yamlをに含まれていますSSHをサーバーにインストールし、Cryptoをインストールします。問題なく、VM上のPythonコンソールにロードすることもできます。

配備中にこのエラーが発生する理由は何ですか?

答えて

2

Google App engine documentationによれば、app.yamlのライブラリセクションは、フレキシブルVMではサポートされなくなりました。 requirements.txtに依存関係を宣言する必要があります。

だから、あなたはあなたのrequirements.txtに次の行を追加する必要があります。

pycrypto==2.6.1 

あなたは

があなたのランタイムがruntime: python-compatに設定されていることを確認をapp.yamlからlibrariesディレクティブを削除していることを確認します。

フレキシブルなvmが自動的にすべての依存関係をrequirements.txtにインストールするため、appengine_cfg.pyファイルを削除します。

+0

compatランタイムは必要ではないかもしれませんが、そうでなければ完璧です。 :) –

関連する問題