Fra*_*son 9 python google-app-engine google-cloud-datastore google-cloud-platform
我一直在阅读这些内容,并试图将dev_appserver.py与新的"非遗留"谷歌云数据存储模拟器相连接.
我的主要动机是在我在本地计算机上进行开发时将我的appengine项目与我的google云数据流管道集成.
据我所知,这是设置集成的过程:
googledatastore使用pip 安装库(six如果使用的是系统python El Capitan,则可能需要强制使用easy_install 进行升级)使用谷歌云sdk工具运行谷歌云数据存储模拟器:
gcloud beta emulators datastore start --no-legacy
Run Code Online (Sandbox Code Playgroud)在dev_appserver将运行以下命令以设置数据存储环境变量的终端中:
$(gcloud beta emulators datastore env-init --no-legacy)
Run Code Online (Sandbox Code Playgroud)如果app.yaml中的项目ID与gcloud工具中当前选择的项目ID不匹配,请在同一个shell中设置以下环境变量:
export DATASTORE_USE_PROJECT_ID_AS_APP_ID=true
Run Code Online (Sandbox Code Playgroud)但是当我导航到我得到的网址时,这并不是那么顺利:
BadArgumentError: Could not import googledatastore.
This library must be installed with version >= 4.0.0.b1 to use the Cloud Datastore
API.
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为如果我打开一个python shell并且运行import googledatastore没有错误发生.
如果我深入挖掘并检测dev_appserver中的导入代码并在此处记录错误,我会得到以下回溯:
Traceback (most recent call last):
File "/usr/local/google-cloud-sdk/platform/google_appengine/google/appengine/datastore/datastore_pbs.py", line 52, in <module>
import googledatastore
File "/Library/Python/2.7/site-packages/googledatastore/__init__.py", line 21, in <module>
from . import helper
File "/Library/Python/2.7/site-packages/googledatastore/helper.py", line 25, in <module>
from google.datastore.v1beta3 import entity_pb2
ImportError: No module named datastore.v1beta3
Run Code Online (Sandbox Code Playgroud)
我也没有google.datastore.v1beta3在常规python shell中导入的问题.
如果我运行PYTHONINSPECT=x dev_appserver.py app.yaml并退出shell执行这些导入运行没有错误,甚至更奇怪.也许dev_appserver.py正在启动时,python路径有些奇怪吗?
任何人都可以告诉我如何使这个功能工作?
更新:我在ubuntu 14.04(系统python 2.7.6,pip 8.1.2,通过easy_install,gcloud-sdk 118.0.0,app-engine-python 1.9.38)以及OS X(gcloud sdk 114.0.0)上重现了这个问题,app-engine-python 1.9.38,system python 2.7.10).
| 归档时间: |
|
| 查看次数: |
3660 次 |
| 最近记录: |