Ich bin ziemlich neu in Flask, GAE und die Verwendung von API. Ich versuche, eine einfache Web-App zu erstellen, die eine Verbindung zu einer der API von Google herstellen kann.Flask auf GAE - Connect to Google API - Kann JSON-Datei nicht verwenden
Meine Ordnerstruktur sieht wie folgt aus (ich habe es zu den wichtigsten Dateien gehalten):
app-webemotions:
-app.yaml
-main.py
-lib
--sentimentanalysis. py
-static
--credential.json
Alles funktioniert, aber die jSON-Datei für die Anmeldeinformationen bereitstellt. Mein Verständnis ist, dass es ein paar Möglichkeiten, es zu tun:
1) die GOOGLE_APPLICATION_CREDENTIALS Umgebungsvariable auf das Ziel meiner Datei in app.yaml
2 Einrichten) Anfordern die Datei durch meinen Skript (sentimentanalysis.py)
Leider konnte ich keine dieser Arbeiten machen.
Option 1):
In app.yaml habe ich die Zeile:
env_variables:
GOOGLE_APPLICATION_CREDENTIALS: static/key/credentials.json
ich dann meinen Code durch dev_appserver.py laufen. und erhalten den folgenden Fehler:
ApplicationDefaultCredentialsError: File static/key/credentials.json (pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!
Option 2): ich eine Zeile Code in meinem Skript sentimentanalysis.py haben:
scope = ['https://www.googleapis.com/auth/cloud-platform']
credentials = ServiceAccountCredentials.from_json_keyfile_name('/static/credentials.json', scope)
Und beim Ausführen des Codes ich die folgende Fehlermeldung erhalten :
raise IOError(errno.EACCES, 'file not accessible', filename)
IOError: [Errno 13] file not accessible: '/static/credentials.json'
INFO 2016-08-06 04:10:51,678 module.py:788] default: "POST /Sentiment-analysis HTTP/1.1" 500 -
Frage:
So sieht es aus, unabhängig von der Methode, die ich benutze, bin ich nicht in der Lage, den richtigen Pfad zur JSON-Datei
bereitzustellen Meine Frage ist zu wissen, ob eine der oben genannten Optionen die richtige Option ist und ob Ja, was mache ich falsch? Wenn sie nicht die richtigen Optionen sind, was würden Sie empfehlen?
Apologies dies, wenn schon gefragt worden, ich habe versucht nun eine Antwort für ein paar Stunden zu finden und nicht in der Lage gewesen, es zu knacken ...
Thank you!
-Code kann nicht statische Ressourcen zugreifen, wenn Sie es ausdrücklich erlauben, eine Lese der docs. –
Danke Tim.Nun, ich hatte die Dokumente gelesen, sonst würde ich nicht posten :) Ich bin mir nicht sicher, was Sie unter "statische Ressourcen" verstehen. Ich habe einen statischen Ordner mit statischen Ressourcen wie CSS- oder JS-Dateien. Auf all diese kann meine App zugreifen, nur die JSON-Datei kann nicht. Können Sie bitte klarstellen? Vielen Dank. – Sylvain
Wenn Sie sagen, dass Ihre App auf die statischen Ressourcen zugreifen kann, haben Sie wirklich Flaschcode, der diese Dateien explizit öffnet, oder meinen Sie, dass ein Webbrowser diese Dateien laden kann. Sie sind nicht klar und es gibt einen großen Unterschied - daher meine ursprüngliche Kommentar. Die spezifische Dokumentation, auf die ich mich beziehe, ist https://cloud.google.com/appengine/docs/python/config/appref#handlers_element und die Direktive "application_readable". Sie sollten wahrscheinlich Ihre app.yaml –