Почему при развертывании на AppEngine не устанавливается файл require.txt? - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь обновить существующий проект до новой стандартной среды Python 3 AppEngine.Я могу развернуть код своего приложения, однако приложение аварийно завершает работу, поскольку не может найти зависимости, определенные в файле needs.txt.Структура файла приложения выглядит следующим образом:

|____requirements.txt
|____dispatch.yaml
|____dashboard
| |____dashboard.yaml
| |____static
| | |____gen
| | | |____favicon.ico
| | | |____fonts
| | | | |____MaterialIcons-Regular.012cf6a1.woff
| | | |____app.js
| | |____img
| | | |____avatar-06.png
| | | |____avatar-07.png
| | | |____avatar-05.png
| | | |____avatar-04.png
| |____templates
| | |____gen
| | | |____index.html
| |____main.py
| |____.gcloudignore
|____.gcloudignore

И файл requirements.txt выглядит следующим образом:

Flask==0.12.2
pyjwt==1.6.1
flask-cors==3.0.3
requests==2.19.1
google-auth==1.5.1
pillow==5.3.0
grpcio-tools==1.16.1
google-cloud-storage==1.13.0
google-cloud-firestore==0.30.0
requests-toolbelt==0.8.0
Werkzeug<0.13.0,>=0.12.0
firestore-model>=0.0.2

После развертывания, когда я захожу на сайт в Интернете, я получаюa 502. Служба отчетов об ошибках консоли GCP указывает, что ошибка выдается из строки в main.py, где она пытается импортировать одну из указанных выше зависимостей: ModuleNotFoundError: No module named 'google'

Я пытался переместить requirements.txtв папку на панели инструментов и получите тот же результат.

Stack Trace:

Traceback (most recent call last):
  File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 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", line 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.callable = self.load()
  File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
    return self.load_wsgiapp()
  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 12, in <module>
    from google.cloud import storage
ModuleNotFoundError: No module named 'google'

1 Ответ

0 голосов
/ 17 ноября 2018

Несколько вещей могут пойти не так.Убедитесь, что:

  • Ваш файл requirements.txt находится в том же каталоге, что и ваш main.py файл
  • Ваш .gcloudignore не игнорирует ваш requirements.txt файл
  • Вы развертываете функцию в том же каталоге, что и requirements.txt и main.py
...