При запуске dev_appserver.py появляется следующая ошибка:
from google.auth import app_engine
File "/google/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/ python/runtime/sandbox.py"
, line 1147, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named google.auth
Странно то, что когда я развертываю приложение, оно работает нормально.
Я пытался:
- dev_appserver.py MY_DIRECTORY
- cd / google / google-cloud-sdk / bin /; python dev_appserver.py MY_DIRECTORY
- python dev_appserver.py hello_world /
- Установлены обновленные компоненты gcloud install app-engine-go
Дополнительная информация:
- Виртуальный env не используется.
- путь к dev_appserver: /google/google-cloud-sdk/bin/dev_appserver.py
- Я использую Google Console Cloudshell
Вот версии SDK:
- Google Cloud SDK 192.0.0
- альфа 2017.09.15
- app-engine-go
- приложение-двигатель-Java 1.9.63
- app-engine-php ""
- приложение-двигатель-Python 1.9.67
- приложение-двигатель-питон-дополнительные 1.9.63
- бета 2017.09.15
- bq 2.0.29
- cbt
- облачный эмулятор хранилища данных 1.4.1
- ядро 2018.03.02
- datalab 20180213
- docker-credential-gcr
- gcd-эмулятор v1beta3-1.0.0
- gsutil 4.28
- kubectl
- pubsub-эмулятор 2018.02.02
Файлы:
app.yaml
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: main.app
libraries:
- name: flask
version: 0.12
- name: six
version: "1.9.0"
appengine_config.py
from google.appengine.ext import vendor
import os
vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)),'lib'))
main.py
import logging
from flask import Flask
from sheets import data
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!{}'.format(data)
@app.errorhandler(500)
def server_error(e):
# Log the error and stacktrace.
logging.exception('An error occurred during a request.')
return 'An internal error occurred.', 500
sheet.py
from google.auth import app_engine
import googleapiclient.discovery
SCOPES = ['https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/drive.file',
'https://www.googleapis.com/auth/drive.readonly',
'https://www.googleapis.com/auth/spreadsheets.readonly',
'https://www.googleapis.com/auth/sqlservice.admin']
spreadsheetId = '<spreadsheet-id>'
rangeName = 'A1:A5'
credentials = app_engine.Credentials(scopes=SCOPES)
service = googleapiclient.discovery.build('sheets', 'v4', credentials=credentials)
data = service.spreadsheets().values().get(spreadsheetId=spreadsheetId,
range=rangeName).execute()
data = data.get('values',[])
/ lib
.
..
apiclient
cachetools
cachetools-2.0.1.dist-info
google
googleapiclient
google_api_python_client-1.5.2.dist-info
google_api_python_client-1.6.5.dist-info
google_auth-1.4.1.dist-info
google_auth-1.4.1-py3.6-nspkg.pth
google_auth_httplib2-0.0.3.dist-info
google_auth_httplib2.py
google_auth_httplib2.pyc
httplib2
httplib2-0.10.3.dist-info
oauth2client
oauth2client-2.2.0.dist-info
oauth2client-4.1.2.dist-info
pyasn1
pyasn1-0.4.2.dist-info
pyasn1_modules
pyasn1_modules-0.2.1.dist-info
rsa
rsa-3.4.2.dist-info
simplejson
simplejson-3.13.2.dist-info
six-1.11.0.dist-info
six.py
six.pyc
uritemplate
uritemplate-0.6.dist-info
uritemplate-3.0.0.dist-info
Решаю вопрос:
Dev_appserver.py не использовал модули в моей папке lib. Вместо этого он использовал пакеты на моем компьютере. Чтобы устранить эту проблему, я удалил все пакеты Google со своего локального компьютера, и теперь он отлично работает.
lib
каталог вашего приложения? - person Dan Cornilescu   schedule 09.03.2018google-auth
. Вы видите файлыgoogle/auth/__init__.py
иgoogle/auth/app_engine.py
в разделеlib
? - person Dan Cornilescu   schedule 09.03.2018google_auth-1.4.1-py3.6...
файл в библиотеке - это случайно не версия библиотеки для python3? Вам нужен питон 2.7 ... - person Dan Cornilescu   schedule 09.03.2018pip2
? - person Dan Cornilescu   schedule 09.03.2018