2012-06-10 20 views
35

quiero cargar una aplicación para Google App Engine:error: valores de asignación no están permitidos aquí

recibí este

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

Cuando se ejecuta

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

con este archivo app.yaml:

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

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

línea 2, columna 8 corresponde a la línea de versión. ¿Que esta mal aquí? Por cierto, estoy usando Ubuntu 12.04 aquí.

Respuesta

5

O, si el espaciamiento no es el problema, podría querer el nombre del directorio principal en lugar del nombre del archivo.

No $ dev_appserver helloapp.py
Pero $ dev_appserver hello/

Por ejemplo:

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 
1

Tal vez esto ayude a alguien más, pero he visto este error cuando el lado derecho de la la asignación contiene dos puntos sin incluir citas, como:

someKey: otra clave: cambiar para que hoy en día: el trabajo más

debe ser

someKey: otra de las claves: "Cambiar para realizar hoy: trabajar más"

19

Otra causa es incorrecto indentación que significa tratar de crear los objetos equivocados. Yo sólo he fijado una en una definición Kubernetes del ingreso:

incorrecto

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

correcta

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

¡Gracias!Eso solucionó mi problema :) – Ads20000

+0

@ Ads20000 puedes votar la respuesta entonces :) – lucian

+0

Sí, este era mi problema también. Es por eso que Python está frakking estúpido. Los espacios en blanco NO deberían ser importantes. –

0
application:climate-change 

cambio a

application: climate-change 

El análisis de Yaml requiere espacio después del colon

Cuestiones relacionadas