I am unable to get my application working reading documents from Google Firestore.
Here is my python Flask main.py
from flask import Flask
from google.cloud import firestore
app = Flask(__name__)
db = firestore.Client()
@app.route('/')
def hello():
posts_ref = db.collections(u'posts')
posts = posts_ref.get()
for post in posts:
return u'{} => {}'.format(post.id, post.to_dict())
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
However the logs are showing the following error.
2019-02-22 12:33:08 default[2-9] "GET / HTTP/1.1" 502
2019-02-22 12:33:10 default[2-9] [2019-02-22 12:33:10 +0000] [8] [INFO] Starting gunicorn 19.9.0
2019-02-22 12:33:10 default[2-9] [2019-02-22 12:33:10 +0000] [8] [INFO] Listening at: http://0.0.0.0:8081 (8)
2019-02-22 12:33:10 default[2-9] [2019-02-22 12:33:10 +0000] [8] [INFO] Using worker: threads
2019-02-22 12:33:10 default[2-9] [2019-02-22 12:33:10 +0000] [23] [INFO] Booting worker with pid: 23
2019-02-22 12:33:10 default[2-9] [2019-02-22 12:33:10 +0000] [23] [ERROR] Exception in worker process
2019-02-22 12:33:10 default[2-9] Traceback (most recent call last): File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py",l
ine 583, in spawn_worker worker.init_process() File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 104,
in init_process super(ThreadWorker, self).init_process() File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py",li
ne 129, in init_process self.load_wsgi() File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_
wsgi self.wsgi = self.app.wsgi() File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi self.cal
lable = self.load() File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load return self.load_wsgiap
p() File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp return util.import_app(self.app
_uri) File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app __import__(module) File "/srv/main
.py", line 2, in <module> from google.cloud import firestore ModuleNotFoundError: No module named 'google'
2019-02-22 12:33:10 default[2-9] [2019-02-22 12:33:10 +0000] [23] [INFO] Worker exiting (pid: 23)
2019-02-22 12:33:11 default[2-9] [2019-02-22 12:33:11 +0000] [8] [INFO] Shutting down: Master
My directory structure
I have init .py in lib folder and in google folder.
As dustin-ingram@ suggests, it's probable that you've not imported the google.cloud.firestore
(and possibly flask
) packages correctly.
A good practice is to create a virtualenv, a requirements.txt
and then pip install -r requirements.txt
. Its contents may be:
flask==1.0.2
google-cloud-firestore==0.31.0
You've also a typo in your code; it's collection
not collections
:
posts_ref = db.collection(u'posts')
You will need to have enabled Firestore in your project (and possibly created the posts
collection before you run your code too).
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.