2016-06-03 14 views
1

Ich habe versucht, MySQL zu verwenden, wenn VM wahre Flag auf true auf meinem app.yaml setted istGAE - Einstellung VM auf true und gemeinsam genutzte Bibliotheken insgesamt

aber dieser Fehler ausgelöst wird: appcfg.py: Fehler: Fehler beim Analysieren von src/app.yaml: Die Anweisung "libraries:" wurde für verwaltete VMs als veraltet eingestuft. Löschen Sie diesen Abschnitt aus Ihrer app.yaml, verwenden Sie pip (https://pip.pypa.io/), um Ihre Abhängigkeiten zu installieren, und speichern Sie sie in einer requirements.txt. Für weitere Informationen besuchen Sie bitte http://cloud.google.com/python.

Ich habe nichts speziell für diesen Fehler gefunden, wo sollte ich diese "requirement.txt" setzen, hatte jemand dieses Problem?

Danke!

Antwort

2

Wenn Sie mit flexiblen Umgebungen arbeiten (zuvor als verwaltete virtuelle Maschinen bezeichnet), können Sie die Bibliotheksrichtlinie nicht in Ihrer app.yaml verwenden, um Bibliotheken von Drittanbietern zu aktivieren. Stattdessen sollten Sie pip verwenden, um Ihre Abhängigkeiten zu installieren. Von oficial docs;

Requirements.txt and the Python package manager pip are used to declare and install application dependencies.

Die Dokumentation ist auch explizit, wenn der Autor schreiben;

Requirements.txt defines the libraries that will be installed both locally and when deploying to App Engine.

Sie sollten die Datei import.txt im Stammverzeichnis ablegen. Here Sie können ein Beispiel sehen, in dem Flaschenbibliothek importiert wurde.

In Ihrer Entwicklungsumgebung können Sie den folgenden Befehl ausführen, um Ihre deklarierten Bibliotheken zu installieren.

pip install -r requirements.txt 

Pip ist die Standardmethode zum Installieren von Bibliotheken in Python-Umgebungen. Here Sie können eine sehr schöne Dokumentation finden.

Update:

Sie sollten den folgenden Befehl verwenden zu implementieren:

gcloud proview app deploy 

Werfen Sie einen Blick here für weitere Details.

Auch here gibt es ein offizielles Beispiel für Ihren Anwendungsfall. Ich kann einen kleinen Unterschied sehen, der Autor verwendet PyMySQL == 0.7.3 anstelle von MySQL-Python.

+0

Vielen Dank, das hat mir wirklich geholfen. Ich habe "MySQL-python = 1.2.5" auf requirements.txt gesetzt, aber wenn ich es hochlade, wird der Fehler "Kein Modul namens MySQL" auf mich geworfen. Weißt du, ob ich die Installation "zwingen" muss, wenn ich sie auf gae hochgeladen habe? Übrigens benutze ich appcfg.py -A update app.yaml, sollte ich stattdessen gcloud preview app deploy verwenden? – SupimpaAllTheWay

+0

Meine Frage dazu verwandt: http://Stackoverflow.com/questions/37625838/gae-python-no-module-named-mysqldb – SupimpaAllTheWay

+0

Hallo Dyego, ja sollten Sie gcloud prowiew app deploy Befehl verwenden. Sehen Sie [hier] (https://cloud.google.com/appengine/docs/flexible/python/migrating-an-existing-app#deploying). Wie auch immer, [hier] (https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/appengine/flexible/cloudsql) gibt es ein offizielles Beispiel für Ihren Anwendungsfall. Ich kann einen kleinen Unterschied sehen, der Autor verwendet PyMySQL == 0.7.3 anstelle von MySQL-Python. – Nico

Verwandte Themen