google-app-engine fails to run Cron job and gives an ImportError: No module named gcloud
google-app-engine fails to run Cron job and gives an ImportError: No module named gcloud
app-engine 无法导入 gcloud
使用 gcloud app deploy app.yaml \cron.yaml 在 google app engine
上部署
在浏览器上打开并得到:
Traceback (most recent call last):
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/base/data/home/apps/s~gcp-project-01/20160916t160552.395688991947248655/main.py", line 18, in <module>
import update_datastore as ud
File "/base/data/home/apps/s~vehicle-monitors-api/20160916t160552.395688991947248655/update_datastore.py", line 20, in <module>
from gcloud import datastore, logging
ImportError: No module named gcloud
app.yaml 文件:
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
script: main
login: admin
cron.yaml 文件:
cron:
- description: run main app
url: /
target: main
schedule: every 2 minutes
requirements.txt 文件:
gcloud==0.14.0
所有第 3 方包都需要安装在与您的应用相同的目录中。 运行 从您的应用程序的根目录安装它。
pip install gcloud -t .
成功了!
使用路径:
import sys
sys.path.insert(0, 'lib')
补充:
还需要在需求中添加protobuf:
protobuf==3.1.0.post1
在 google 文件夹中创建 __init__.py
:
# this is a namespace package
try:
import pkg_resources
pkg_resources.declare_namespace(__name__)
except ImportError:
import pkgutil
__path__ = pkgutil.extend_path(__path__, __name__)
也用pip install -t lib --upgrade protobuf
gcloud==0.18.1
使用过。
抱歉来晚了post
app-engine 无法导入 gcloud 使用 gcloud app deploy app.yaml \cron.yaml 在 google app engine
上部署在浏览器上打开并得到:
Traceback (most recent call last):
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/base/data/home/apps/s~gcp-project-01/20160916t160552.395688991947248655/main.py", line 18, in <module>
import update_datastore as ud
File "/base/data/home/apps/s~vehicle-monitors-api/20160916t160552.395688991947248655/update_datastore.py", line 20, in <module>
from gcloud import datastore, logging
ImportError: No module named gcloud
app.yaml 文件:
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
script: main
login: admin
cron.yaml 文件:
cron:
- description: run main app
url: /
target: main
schedule: every 2 minutes
requirements.txt 文件:
gcloud==0.14.0
所有第 3 方包都需要安装在与您的应用相同的目录中。 运行 从您的应用程序的根目录安装它。
pip install gcloud -t .
成功了! 使用路径:
import sys
sys.path.insert(0, 'lib')
补充:
还需要在需求中添加protobuf:
protobuf==3.1.0.post1
在 google 文件夹中创建 __init__.py
:
# this is a namespace package
try:
import pkg_resources
pkg_resources.declare_namespace(__name__)
except ImportError:
import pkgutil
__path__ = pkgutil.extend_path(__path__, __name__)
也用pip install -t lib --upgrade protobuf
gcloud==0.18.1
使用过。
抱歉来晚了post