烧瓶应用引擎不能与firestore一起使用?
问题描述:
设置:在谷歌云壳牌标准信封烧瓶应用引擎不能与firestore一起使用?
来看,我试图从它使用pip install --upgrade google-cloud-firestore -t lib
使用from google.cloud import firestore
我已经安装了瓶的应用程序访问公司的FireStore。如果我手动运行脚本,它工作正常。但是当使用dev_appserver.py
时,它会失败。有下面的错误。
$ dev_appserver.py app.yaml
INFO 2017-10-06 07:34:35,301 devappserver2.py:105] Skipping SDK update check.
INFO 2017-10-06 07:34:35,391 api_server.py:300] Starting API server at: http://0.0.0.0:34796
WARNING 2017-10-06 07:34:35,391 dispatcher.py:312] Your python27 micro version is below 2.7.12, our current production version.
INFO 2017-10-06 07:34:35,440 dispatcher.py:251] Starting module "default" running at: http://0.0.0.0:8080
INFO 2017-10-06 07:34:35,441 admin_server.py:116] Starting admin server at: http://0.0.0.0:8000
ERROR 2017-10-06 07:34:42,266 wsgi.py:263]
Traceback (most recent call last):
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/home/user1/projects/probfe/main.py", line 10, in <module>
from google.cloud import firestore
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/runtime/sandbox.py", line 1132, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named google.gax
但是,在我的lib
中,我可以看到它们。
$ls lib
builtins future-0.16.0.dist-info itsdangerous.pyc requests-2.18.4.dist-info
cachetools futures-3.1.1.dist-info jinja2 rsa
cachetools-2.0.1.dist-info google Jinja2-2.9.6.dist-info rsa-3.4.2.dist-info
certifi googleapis_common_protos-1.5.3.dist-info libfuturize setuptools
certifi-2017.7.27.1.dist-info googleapis_common_protos-1.5.3-py2.7-nspkg.pth libpasteurize setuptools-36.5.0.dist-info
chardet google_auth-1.1.1.dist-info _markupbase six-1.11.0.dist-info
chardet-3.0.4.dist-info google_auth-1.1.1-py2.7-nspkg.pth markupsafe six.py
click google_cloud_core-0.27.1.dist-info MarkupSafe-1.0.dist-info six.pyc
click-6.7.dist-info google_cloud_core-0.27.1-py3.6-nspkg.pth past socketserver
concurrent google_cloud_firestore-0.27.0.dist-info pkg_resources tests
copyreg google_cloud_firestore-0.27.0-py3.6-nspkg.pth ply _thread
dill google_gax-0.15.15.dist-info ply-3.8.dist-info tkinter
dill-0.2.7.1.dist-info google_gax-0.15.15-py2.7-nspkg.pth protobuf-3.4.0.dist-info urllib3
_dummy_thread grpc protobuf-3.4.0-py2.7-nspkg.pth urllib3-1.22.dist-info
easy_install.py grpcio-1.4.0.dist-info pyasn1 werkzeug
easy_install.pyc html pyasn1-0.3.7.dist-info Werkzeug-0.12.2.dist-info
enum http pyasn1_modules winreg
enum34-1.1.6.dist-info idna pyasn1_modules-0.1.4.dist-info xmlrpc
flask idna-2.6.dist-info queue
Flask-0.12.2.dist-info itsdangerous-0.24.dist-info reprlib
future itsdangerous.py requests
答
由于您使用的是dev_appserver.py
,这意味着您有一个标准的env应用程序。并且在标准env中,所有外部依赖需要在您的应用中安装,而不是在本地python安装(这是您对pip
调用所做的)。
从Installing a third-party library:
创建一个目录来存储您的第三方库,如
lib/
。mkdir lib
使用pip与
-t <directory>
标志(6或更高版本)的库复制到您在上一步 创建的文件夹。例如:pip install -t lib/ <library_name>
我这样做了,并得到了错误。在我的requirements.txt文件中,它包含'Flask == 0.12.2'和'google-cloud-firestore'。我忘了在我的原始文章中添加该内容。我刚刚在原帖中编辑过。 –
你没有提到你如何使用'requirements.txt' - 它不会在标准环境中自动使用... –
这里是我所做的:'pip install --upgrade -r requirements.txt -t lib'。然后我跑了:'dev_appserver.py app.yaml'。我错过了什么吗?我刚刚使用[此烧瓶应用程序引擎指南](https://cloud.google.com/appengine/docs/standard/python/getting-started/python-standard-env),并添加'google-cloud-firestore'在requirements.txt –