119 votes

Erreur d'analyse du fichier yaml : les valeurs de mapping ne sont pas autorisées ici

Je veux télécharger une application sur Google App Engine :

Je reçois ceci

Error parsing yaml file:
mapping values are not allowed here
  in "/home/antonio/Desktop/ATI/climate-change/app.yaml", line 2, column 8 

En cours d'exécution

./appcfg.py update /home/antonio/Desktop/ATI/climate-change

avec ce fichier app.yaml :

application:climate-change
version: 1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
  script: helloworld.app

la ligne 2, colonne 8 correspond à la ligne de la version. Qu'est-ce qui ne va pas ici ? Btw, j'utilise Ubuntu 12.04 ici.

142voto

Dave W. Smith Points 9470

Changement

application:climate-change

à

application: climate-change

L'espace après les deux points est obligatoire dans le langage yaml si vous voulez une paire clé-valeur. (Voir http://www.yaml.org/spec/1.2/spec.html#id2759963 )

79voto

lcfd Points 638

Une autre cause est une mauvaise indentation, ce qui signifie que l'on essaie de créer les mauvais objets. Je viens d'en corriger une dans une définition d'Ingress de Kubernetes :

Mauvais

- path: / 
    backend: 
      serviceName: <service_name> 
      servicePort: <port> 

Correct

- path: /
  backend:
    serviceName: <service_name>
    servicePort: <port>

6voto

John Mee Points 12004

Ou, si l'espacement n'est pas le problème, il peut vouloir le nom du répertoire parent plutôt que le nom du fichier.

Non $ dev_appserver helloapp.py
Mais $ dev_appserver hello/

Par exemple :

Johns-Mac:hello john$ dev_appserver.py helloworld.py
Traceback (most recent call last):
  File "/usr/local/bin/dev_appserver.py", line 82, in <module>
    _run_file(__file__, globals())
...
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/yaml_listener.py", line 212, in _GenerateEventParameters
    raise yaml_errors.EventListenerYAMLError(e)
google.appengine.api.yaml_errors.EventListenerYAMLError: mapping values are not allowed here
  in "helloworld.py", line 3, column 39

Versus

Johns-Mac:hello john$ cd ..
Johns-Mac:fbm john$ dev_appserver.py hello/
INFO     2014-09-15 11:44:27,828 api_server.py:171] Starting API server at: http://localhost:61049
INFO     2014-09-15 11:44:27,831 dispatcher.py:183] Starting module "default" running at: http://localhost:8080

4voto

Sajeev Points 41

C'est faux :

people:
  empId: 123
  empName: John
    empDept: IT

Correct :

people:
  emp:
    id: 123
    name: John
    dept: IT

3voto

Joe Points 864

Peut-être que cela aidera quelqu'un d'autre, mais j'ai vu cette erreur lorsque le RHS du mappage contient un deux-points sans guillemets, comme par exemple :

certainsKey : une autre clé : Changement à faire aujourd'hui : travailler plus

devrait être

certainsKey : une autre clé : "Changement à faire aujourd'hui : faire plus de sport".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X