FlaskとGoogle Datastoreを使用して自分自身をGoogle Cloudにする基本的なWebアプリケーションを作成しようとしています。私のアプリをデプロイするとエラー500が出ますが、PythonがDatastore:ImportError: No module named cloud
をインポートすることはできません。ここでgoogle.cloudからデータストアをインポートできません
は私app.yaml
です:私のmain.py
開始が好き
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: .*
script: main.app
libraries:
- name: jinja2
version: "2.6"
- name: markupsafe
version: "0.15"
- name: flask
version: 0.12
は次のとおりです。
from __future__ import absolute_import
# Standard imports
import time
import logging
import json
import threading
# Flask framework
from flask import request
from flask import Flask
# Google Cloud features
from google.cloud import datastore
# the following replaces requests
from google.appengine.api import urlfetch
は最後に、私のrequirements.txt
は以下の通りです:
Flask
google-cloud
click
私は私のアプリを展開する場合( gcloud app deploy
を使用)およびge私のサイトには、私は私のエラー500を取得します。
from google.cloud import datastore
私は彼らのチュートリアルで何をしているので、なぜ私は使用することができません理解していない...私は何かを見つける必要があります。
ご協力いただければ幸いです。
私は本当に理解していないとあなたが片付けるかもしれない何かがあります。アプリケーションをデプロイするときに 'requirements.txt'が使われますか?私の理解では、 '/ lib'で利用可能なモジュールだけが重要です...しかし、それは私が確信していることです。また 'appengine_config.py'ファイルを追加して' lib'にファイルを追加し、Datastoreが正しく動作するようにしましたが、私が何をやっているのか本当に理解したいと思っています。 –
'requirements.txt'ファイルは、標準のenvアプリケーションのデプロイ時には使用されません。デプロイメントの場合、アプリケーションディレクトリ(およびもしあれば' skip_files'設定)だけが見えます。しかし、このようなファイルは、サードパーティ製ライブラリのベンダリング時に標準のenvで使用することができます - そのファイルをapp dir(通常は 'lib'と呼ばれます)にすべてインストールするための単一の' pip '呼び出しに引数として渡します。必須ではありません(手動の 'pip'呼び出しを代わりに使用することもできます)。あなたがしたので私はそれを言いました。しかし、そのようなファイルは、GAEフレックス環境(別の獣)で使用されます。 –
だから、私がDatastoreを使いたいのであれば、pipを 'lib'フォルダにインストールする必要があります。また、モジュールを '/ lib'にインストールした後、私は** appengine_config.py'ファイルを使ってベンダーを設定することができますか? –