2017-07-01 1 views
1

Selon le official list of built-in libraries, ujson est disponible. Cependant, les app.yaml suivants Snippet:Comment utiliser ujson avec Google App Engine

libraries: 
- name: ujson 
    version: '1.35' 

... génère cette erreur:

Usage: appcfg.py [options] update <directory> | [file, ...] 

appcfg.py: error: Error parsing ./app.yaml: the library "ujson" is not supported 
    in "./app.yaml", line 89, column 1. 

Si je tente d'utiliser d'autres bibliothèques C pris en charge comme numpy, il fonctionne très bien. Je suis en cours d'exécution SDK 159.0.0 (plus tard) et peut même voir une entrée "ujson" dans google-cloud-sdk/lib/googlecloudsdk/third_party/appengine/api/appinfo.py.

Quelle est la raison pour laquelle ujson n'est pas utilisable?

Répondre

1

ujson v1.35 a été ajouté au moteur d'exécution de l'application dans Python SDK version 1.9.55.

Cette version sdk n'a pas été inclus dans le sdk gcloud jusqu'à ce que v 161.0.0 (2017-06-28):

Updated App Engine components for Python to version 1.9.55. Please visit the release notes for details


Anecdote:.

Certains d'entre nous préfèrent encore appcfg.py update . au lieu de gcloud app deploy app.yaml (Nous sommes race rare et mourante: D). Par le passé, j'ai remarqué que l'outil appcfg.py que j'utilisais était une ancienne version de l'ancien outil de moteur d'application. Ne vient pas avec toutes les gcloud components update awesomeness. Vous deviez télécharger les binaires à chaque fois.

which appcfg.py doit révéler l'exact utilisé qui était pour moi:

$ ~/google_appengine/appcfg.py 

Je ne peux pas dire que je n'étais pas assez averti. D'ailleurs, je continuais de voir ce conseil/d'avertissement à chaque fois que je courais gcloud components update:

WARNING: There are older versions of Google Cloud Platform tools on your system PATH. Please remove the following to avoid accidentally invoking these old tools:

/Users/jeff/google_appengine/endpointscfg.py 
/usr/local/bin/endpointscfg.py 
/Users/jeff/google_appengine/dev_appserver.py 

mise à jour afin de la dernière version, mettez à jour vos chemins pour pointer vers la droite appcfg et profiter ujson ou l'un des goodies et quand ils tombent.

$ ~/google-cloud-sdk/platform/google_appengine/appcfg.py update . 
+1

Je pensais laisser cette explication de _short_-ish pour les futurs utilisateurs rencontrant des problèmes similaires. Peut-être pas nécessairement pertinent à cette question mais bon ... –

+1

Merci pour tous les détails! L'ambiguïté de l'outil à utiliser pour le déploiement et le fait que les deux outils (gcloud et appcfg.py) sont fournis avec le kit de développement ['gcloud'] (https://cloud.google. com/sdk/docs /). Bien que "périmé", je mettais à jour le [_app engine SDK_] (https://cloud.google.com/appengine/docs/standard/python/download#appengine_sdk) à un emplacement différent de celui du gcloud SDK, et donc aller inutilisé. – hamx0r