यमल फ़ाइल को पार्स करने में त्रुटि: यहां मैपिंग मानों की अनुमति नहीं है


93

मैं Google App Engine पर एक ऐप अपलोड करना चाहता हूं:

मैंने इसे प्राप्त किया

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

दौड़ते समय

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

इस app.yaml फ़ाइल के साथ:

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

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

पंक्ति 2, कॉलम 8 संस्करण लाइन से मेल खाती है। यहाँ क्या गलत है? Btw, मैं यहाँ Ubuntu 12.04 का उपयोग कर रहा हूँ।


सुनिश्चित करें कि आप Skype या कुछ सॉफ़्टवेयर से पाठ की प्रतिलिपि नहीं बना रहे हैं। पहले टेक्स्ट एडिटर में टेक्स्ट पेस्ट करें, फिर वहां से कॉपी करें। मैंने स्काइप से कॉपी किया और विज़ुअली कोई समस्या नहीं थी। मैंने इसे केवल (यूनिक्स) रिक्त स्थान बनाने के लिए 'स्पेस' को हटाकर और फिर से रिटेन करके हल किया।
नदजीब मामी

जवाबों:



64

एक और कारण गलत इंडेंटेशन है जिसका मतलब है कि गलत ऑब्जेक्ट बनाने की कोशिश करना। मैंने अभी एक कुबेरनेट इनग्रेड परिभाषा में एक तय किया है:

गलत

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

सही बात

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

4
हां, यह मेरी समस्या भी थी। यही कारण है कि अजगर मूर्खतापूर्ण है। व्हॉट्सएप महत्वपूर्ण नहीं होना चाहिए।
केनी वायलैंड

पता नहीं यह एक अजगर फ़ाइल थी। मेरे पास एक अतिरिक्त जगह थी। पागल। जवाब के लिए धन्यवाद!
वर्न जेन्सेन

4
यह एक पायथन फ़ाइल नहीं है। YAML और पायथन समान हैं कि वे दोनों "लोड-असर व्हाट्सएप" का उपयोग करते हैं ताकि आपको अन्यथा विराम की आवश्यकता की मात्रा कम हो सके।
शेकर

1
@ चेकर मैं बल्कि विराम चिह्न होगा।
bot_bot

हाँ। लेकिन किसी भी तरह अजगर में आक्रोश ने मुझे यमलोक में उतने मुद्दे नहीं दिए। एक सूची आइटम रिक्ति में वस्तु मुझे हर बार मिलती है। YAML वास्तव में एक भयानक प्रारूप है। हम केवल JSON टिप्पणी और अनुगामी अल्पविराम के साथ क्यों नहीं कर सकते। इतना आसान होगा।
गेल्वेइलर

5

या, यदि रिक्ति समस्या नहीं है, तो वह फ़ाइल नाम के बजाय मूल निर्देशिका नाम चाहेगा।

$ dev_appserver helloapp.py
लेकिन नहीं$ dev_appserver hello/

उदाहरण के लिए:

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

बनाम

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

2

शायद यह किसी और की मदद करेगा, लेकिन मैंने यह त्रुटि देखी है जब मैपिंग के आरएचएस में उद्धरण संलग्न किए बिना एक बृहदान्त्र होता है, जैसे:

someKey: एक और कुंजी: आज बनाने के लिए बदलें: अधिक काम करें

होना चाहिए

someKey: एक अन्य कुंजी: "आज बनाने के लिए बदलें: अधिक काम करें"


2

मैंने इस त्रुटि को एक ऐसी स्थिति में देखा है जो जो के उत्तर में उल्लिखित है:

description: Too high 5xx responses rate: {{ .Value }} > 0.05

विवरण मूल्य में हमारे पास एक बृहदान्त्र है। इसलिए, समस्या विवरण मूल्य के आसपास के गायब उद्धरणों में है। इसे उद्धरणों को जोड़कर हल किया जा सकता है:

description: 'Too high 5xx responses rate: {{ .Value }} > 0.05'

1

गलत:

people:
  empId: 123
  empName: John
    empDept: IT

सही बात:

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.