2017-08-25 9 views
6

Jest to błąd, który otrzymuję podczas próby wdrożenia przy użyciu gcloud app deploy. Wcześniej pomyślnie wdrożyłem tę samą aplikację. Jestem w stanie uruchomić aplikację w komputerze lokalnym, ale odbiera błąd na wdrożeniuGoogle Cloud Platform: ImportError: Brak modułu o nazwie "google.api.core" podczas wdrażania

ślad błędu:

Updating service [default]...failed.           
ERROR: (gcloud.app.deploy) Error Response: [9] 
Application startup error: 
[2017-08-25 10:50:23 +0000] [1] [INFO] Starting gunicorn 19.7.1 
[2017-08-25 10:50:23 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1) 
[2017-08-25 10:50:23 +0000] [1] [INFO] Using worker: sync 
[2017-08-25 10:50:23 +0000] [7] [INFO] Booting worker with pid: 7 
[2017-08-25 10:50:23 +0000] [7] [ERROR] Exception in worker process 
Traceback (most recent call last): 
    File "/env/lib/python3.5/site-packages/gunicorn/arbiter.py", line 578, in spawn_worker 
    worker.init_process() 
    File "/env/lib/python3.5/site-packages/gunicorn/workers/base.py", line 126, in init_process 
    self.load_wsgi() 
    File "/env/lib/python3.5/site-packages/gunicorn/workers/base.py", line 135, in load_wsgi 
    self.wsgi = self.app.wsgi() 
    File "/env/lib/python3.5/site-packages/gunicorn/app/base.py", line 67, in wsgi 
    self.callable = self.load() 
    File "/env/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 65, in load 
    return self.load_wsgiapp() 
    File "/env/lib/python3.5/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp 
    return util.import_app(self.app_uri) 
    File "/env/lib/python3.5/site-packages/gunicorn/util.py", line 352, in import_app 
    __import__(module) 
    File "/home/vmagent/app/main.py", line 19, in <module> 
    app = bookshelf.create_app(config) 
    File "/home/vmagent/app/bookshelf/__init__.py", line 49, in create_app 
    model = get_model() 
    File "/home/vmagent/app/bookshelf/__init__.py", line 107, in get_model 
    from . import model_datastore 
    File "/home/vmagent/app/bookshelf/model_datastore.py", line 16, in <module> 
    from google.cloud import datastore 
    File "/env/lib/python3.5/site-packages/google/cloud/datastore/__init__.py", line 61, in <module> 
    from google.cloud.datastore.client import Client 
    File "/env/lib/python3.5/site-packages/google/cloud/datastore/client.py", line 33, in <module> 
    from google.cloud.datastore.query import Query 
    File "/env/lib/python3.5/site-packages/google/cloud/datastore/query.py", line 19, in <module> 
    from google.api.core import page_iterator 
ImportError: No module named 'google.api.core' 
[2017-08-25 10:50:23 +0000] [7] [INFO] Worker exiting (pid: 7) 
[2017-08-25 10:50:24 +0000] [1] [INFO] Shutting down: Master 
[2017-08-25 10:50:24 +0000] [1] [INFO] Reason: Worker failed to boot. 

Odpowiedz

7

tl; dr: Zmień swoją google-cloud do 0.27 i powinien naprawić rzeczy.


Wierzę, że jest to błąd związany z nowymi zależnościami google-cloud. W moim przypadku, google-cloud==0.25 ciągnął w tych zależnościach w swojej setup.py:

'google-cloud-core >= 0.24.0, < 0.25dev', 
'google-cloud-datastore >= 1.0.0, < 2.0dev', 

Niedawno na 8/24 (dzień przed ten problem został złożony), pakiet google-cloud-datastore została zaktualizowana 1.3.0.

Niestety google-cloud-datastore 1.3.0 zależy od nowszej wersji google-cloud-core:

'google-cloud-core >= 0.27.0, < 0.28dev', 

Wydaje się jednak ten konflikt wersji jest nierozwiązany/unwarned przez PIP, która korzysta ze starszej wersji. Ale google-cloud-datastore chce from google.api.core import page_iterator, mimo że google.api.core, który nie został dodany do 0.27.0, a następnie wszystko się zepsuje.

Wierzę, że "błąd" jest w przeciążeniu szerokiej zależności w google-cloud===0.25 (lub ewentualnie jakiejkolwiek wersji, której używasz).

Uważam, że "poprawka" jest dla nas zaktualizowana do najnowszej wersji google-cloud=0.27.

Chociaż "poprawna poprawka" jest dla google-cloud, aby poprawić zależności między wersjami, a nie być tak obszerna, lub ryzyko zerwania wstecznej kompatybilności z już opublikowanymi modułami.

Powiązane problemy