6

Tôi là người mới bắt đầu sử dụng Google App Engine, cũng như phát triển web bằng Python. Sau khi tạo một ứng dụng dựa trên Python nhỏ, tôi đã cố gắng trong 6 ngày qua để tải nó lên GAE. Tệp "app.yaml" bên dưới cung cấp lỗi sau đó.Google App Engine | Python | APP.YAML

APP.YAML (UPDATED)

application: web2py 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: false 

default_expiration: "24h" 

handlers: 
- url: /(?P<a>.+?)/static/(?P<b>.+) 
    static_files: applications/\1/static/\2 
    upload: applications/(.+?)/static/(.+) 
    secure: optional 

- url: /favicon.ico 
    static_files: applications/welcome/static/favicon.ico 
    upload: applications/welcome/static/favicon.ico 

- url: /robots.txt 
    static_files: applications/welcome/static/robots.txt 
    upload: applications/welcome/static/robots.txt 

- url: .* 
# script: gaehandler.py   # CGI 
# script: web2py.app # ? 
    script: gaehandler.wsgiapp # WSGI (Python 2.7 only) 
    secure: optional 

admin_console: 
    pages: 
    - name: Appstats 
    url: /_ah/stats 

skip_files: | 
^(.*/)?(
(app\.yaml)| 
(app\.yml)| 
(index\.yaml)| 
(index\.yml)| 
(#.*#)| 
(.*~)| 
(.*\.py[co])| 
(.*/RCS/.*)| 
(\..*)| 
(applications/(admin|examples)/.*)| 
((admin|examples)\.(w2p|tar))| 
(applications/.*?/(cron|databases|errors|cache|sessions)/.*)| 
((logs|scripts)/.*)| 
(anyserver\.py)| 
(web2py\.py)| 
((cgi|fcgi|modpython|wsgi)handler\.py)| 
(epydoc\.(conf|css))| 
(httpserver\.log)| 
(logging\.example\.conf)| 
(route[rs]\.example\.py)| 
(setup_(app|exe)\.py)| 
(splashlogo\.gif)| 
(parameters_\d+\.py)| 
(options_std.py)| 
(gluon/tests/.*)| 
(gluon/(rocket|winservice)\.py)| 
(contrib/(gateways|markdown|memcache|pymysql)/.*)| 
(contrib/(populate|taskbar_widget)\.py)| 
(google_appengine/.*)| 
(.*\.(bak|orig))| 
)$ 

builtins: 
- remote_api: on 
- appstats: on 
- admin_redirect: on 
- deferred: on 

Google App Engine trong khi sử dụng Python 2.7.3 cung cấp cho các lỗi sau đây

YAML LỖI trên GAE

*** Running dev_appserver with the following flags: 
    --admin_console_server= --port=8080 --use_sqlite 
Python command: /usr/local/bin/python2.7 
ERROR 2012-11-22 05:24:13,142 dev_appserver_main.py:626] Fatal error when loading application configuration: 
mapping values are not allowed here 
    in "/Applications/+++WWW+++/GAE/gae3web2py/app.yaml", line 9, column 9 

Nếu có ai vui lòng giúp tôi, tôi sẽ rất biết ơn, đặc biệt là vào ngày này "Lễ Tạ Ơn" của người Mỹ! ;-)


cập nhật

Các "app.yaml" tập tin đã được cập nhật với khoảng cách như đề xuất. Nhưng nó vẫn cho cùng một lỗi.

Tôi thậm chí đã cố gắng nó ở đây, nơi mà nó mang lại cho các lỗi tương tự: Link>http://yaml-online-parser.appspot.com/

Trả lời

1

Khi cấu hình của bạn app.yaml, bạn cần phải tách tất cả các thông số từ giá trị của họ với không gian (vì vậy application:web2py nên application: web2py vv). Hãy thử thả một khoảng trống sau dấu hai chấm (cụ thể sau dấu hai chấm này: url:/(?P<a>.+?)/static/(?P<b>.+)) và xem có khắc phục được lỗi không.

+0

Cảm ơn bạn, RocketDonkey thân yêu! Tôi đã thử đề xuất của bạn và cập nhật tệp nhưng vẫn là lỗi như đã nêu ở trên. PS: Bạn có một cái tên rất buồn cười. Tôi đang cố tưởng tượng điều đó. ;-) –

+1

@zZz Không sao - bạn vẫn nhận được lỗi đó? Dán yaml của bạn vào trình phân tích cú pháp mà bạn đã liên kết có vẻ hoạt động tốt, rất vui được trợ giúp gỡ lỗi thêm nếu cần :) – RocketDonkey

+0

Kính gửi RocketDonkey, Cảm ơn bạn đã giúp đỡ. Tôi vẫn đang thử GAE và Khung Python, và tôi chắc chắn sẽ giữ cho bạn được đăng tải như thế nào mọi thứ tiếp tục và phát triển. –

1

Đây là vấn đề với cú pháp YAML của bạn. Nếu bạn đã từng nhầm lẫn về cú pháp, you can find the spec here..

Từ phần 2.1 - Bộ sưu tập:

bộ sưu tập khối YAML của sử dụng thụt đầu dòng cho phạm vi và bắt đầu mỗi mục trên một dòng riêng. Chuỗi khối cho biết mỗi mục nhập có dấu gạch ngang và dấu cách (“-”). Ánh xạ sử dụng dấu hai chấm và dấu cách (“:”) để đánh dấu từng cặp khóa: giá trị. Nhận xét bắt đầu bằng một octothorpe (còn được gọi là "băm", "sắc", "bảng" hoặc "số hiệu" - "#").

+0

Cảm ơn bạn, Esthete thân yêu! Tôi đã thử các đề xuất được đưa ra ở trên bởi RocketDonkey, và cập nhật các tập tin, nhưng vẫn còn các lỗi như được đưa ra ở trên. Tôi đã đề cập đến thông tin bạn đã cung cấp tại liên kết đó và nếu tôi có thể tìm hiểu tất cả điều đó, tôi sẽ không phải là một người mới với những nghi ngờ ngớ ngẩn về khoảng cách này !!! ;-) –

1

Cố gắng loại bỏ tất cả các không gian thành công sau :
này làm việc cho tôi, mặc dù đã có một số lỗi khác trong app.yaml của tôi mà tôi chưa sửa chữa.

0

Tôi không chắc Google GAE sử dụng những gì để giải thích tệp YAML, nhưng với PyYAML tệp đó không được chấp nhận vì số \ với giá trị static_files.

Điều này cũng xảy ra là dòng thứ 9 của tệp (loại bỏ các dòng trống). Vì vậy, tôi sẽ bắt đầu bằng cách thoát khỏi những giá trị đó.

Xin lưu ý rằng http://yaml-online-parser.appspot.com/ hiện chỉ phân tích cú pháp ngoại lệ của bạn, nhưng âm thầm dường như chuyển đổi \1 thành '\ 2' trước khi chuyển dữ liệu từ vùng văn bản sang PyYAML.