2017-08-25 18 views
6

पर तैनात 'google.api.core' नामक कोई मॉड्यूल नहीं है, यह मुझे त्रुटि है जब मैं gcloud app deploy का उपयोग करके तैनात करने का प्रयास करता हूं। मैंने पहले ही एक ही ऐप को सफलतापूर्वक तैनात किया है। मैं स्थानीय मशीन में अनुप्रयोग चलाने के लिए सक्षम हूँ, लेकिन तैनातीGoogle क्लाउड प्लेटफार्म: आयात त्रुटि:

पर त्रुटि प्राप्त ट्रैस बैक:

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. 

उत्तर

7

tl; डॉ: अपने google-cloud0.27 में अपग्रेड करें, और यह चीजों को ठीक करना चाहिए।


मेरा मानना ​​है कि इस नए google-cloud निर्भरता के साथ एक बग है। मेरे मामले में, google-cloud==0.25 अपने setup.py में इन निर्भरता में खींच रहा था: 8/24 पर

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

बस हाल ही में (एक दिन पहले इस मुद्दे को दायर किया गया था), google-cloud-datastore पैकेज 1.3.0 को अपडेट किया गया।

दुर्भाग्य से, google-cloud-datastore 1.3.0 google-cloud-core के एक नए संस्करण के आधार पर किया जाता है:

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

लेकिन ऐसा लगता है यह संस्करण संघर्ष अनसुलझे/पिप, जो पुराने संस्करण का उपयोग करता है के द्वारा आगे से अदृष्ट है। लेकिन google-cloud-datastorefrom google.api.core import page_iterator चाहता है, भले ही google.api.core, जिसे 0.27.0 तक जोड़ा नहीं गया था, और फिर सबकुछ टूट जाता है।

मेरा मानना ​​है कि "बग" google-cloud===0.25 (या संभवतः आप जो भी संस्करण उपयोग कर रहे हैं) में अधिभार व्यापक निर्भरता में है।

मेरा मानना ​​है कि हमारे लिए "फिक्स" google-cloud=0.27 के नवीनतम संस्करण में अपग्रेड करना है।

हालांकि "उचित फिक्स" google-cloud के लिए उनकी संस्करण निर्भरता में सुधार करने के लिए है, और इतनी व्यापक नहीं है, या पहले से प्रकाशित मॉड्यूल के साथ पीछे की संगतता को तोड़ने का जोखिम है।

संबंधित मुद्दे