2012-01-17 119 views
1

按照這份指南: http://code.google.com/appengine/articles/remote_api.htmlPython。使用remote_api錯誤,Google App Engine的

我編輯app.yaml中,更新的應用程序,並嘗試使用api_remote連接。然後我得到這個錯誤。爲什麼?

c:\python25\python "C:\Program Files 
\Google\google_appengine\remote_api_shell.py" -s medmcqs.appspot.com 
Traceback (most recent call last): 
    File "C:\Program Files\Google\google_appengine\remote_api_shell.py", line 99, 
in <module> 
    run_file(__file__, globals()) 
    File "C:\Program Files\Google\google_appengine\remote_api_shell.py", line 95, 
in run_file 
    execfile(script_path, globals_) 
    File "C:\Program Files\Google\google_appengine\google\appengine\tools\remote_a 
pi_shell.py", line 140, in <module> 
    main(sys.argv) 
    File "C:\Program Files\Google\google_appengine\google\appengine\tools\remote_a 
pi_shell.py", line 136, in main 
    appengine_rpc.HttpRpcServer) 
    File "C:\Program Files\Google\google_appengine\google\appengine\tools\remote_a 
pi_shell.py", line 76, in remote_api_shell 
    rpc_server_factory=rpc_server_factory) 
    File "C:\Program Files\Google\google_appengine\google\appengine\ext\remote_api 
\remote_api_stub.py", line 645, in ConfigureRemoteApi 
    app_id = GetRemoteAppIdFromServer(server, path, rtok) 
    File "C:\Program Files\Google\google_appengine\google\appengine\ext\remote_api 
\remote_api_stub.py", line 501, in GetRemoteAppIdFromServer 
    'Invalid response recieved from server: %s' % response) 
google.appengine.ext.remote_api.remote_api_stub.ConfigurationError: Invalid resp 
onse recieved from server: <!DOCTYPE html PUBLIC "-//W3C// 

這是我的app.yaml樣子......

application: medmcqs 
version: 2 
runtime: python 
api_version: 1 

inbound_services: 
- mail 

handlers: 

- url: /static 
    static_dir: static 

- url: /options 
    script: main.py 

- url: /send 
    script: main.py 
    login: required 

- url: /history 
    script: main.py 
    login: required 

- url: /suggest 
    script: main.py 
    login: required 

- url: .* 
    script: main.py 

builtins: 
- remote_api: on 

更新:這裏是日誌的詳細信息:

2012-01-18 01:40:33.659 /_ah/remote_api?rtok=252529974978 200 48ms 1kb Google-remote_api/1.0 win32/6.1.7601.2 Python/2.5.4.final.0 
109.224.29.101 - - [18/Jan/2012:01:40:33 -0800] "GET /_ah/remote_api?rtok=252529974978 HTTP/1.1" 200 1605 - "Google-remote_api/1.0 win32/6.1.7601.2 Python/2.5.4.final.0" "medmcqs.appspot.com" ms=49 cpu_ms=23 api_cpu_ms=0 cpm_usd=0.000855 instance=00c61b117cf891196f8b484d5951471ac52ac0 
+0

你的app.yaml實際上是什麼樣的? – geoffspear 2012-01-17 12:34:26

+0

其他錯誤信息只顯示我的html代碼 – Hadi 2012-01-17 14:44:16

+0

更新:app.yaml現在包含在帖子中 – Hadi 2012-01-17 14:47:26

回答

1

幾點建議:

修改*處理器 from:

-url: .* 
script: main.py 

要:

-url: /.* 
script: main.py 

或者:也許你可以手動添加處理程序,然後再試一次,看看是否有任何差異。

- url: /_ah/remote_api 
    script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py 
    login: admin 

EDIT1

還有就是遠程控制檯代碼另一個版本,你可能想嘗試嘗試。它也來自谷歌應用程序引擎官方網站。

#remote_console.py 
#!/usr/bin/python 
import code 
import getpass 
import sys 

sys.path.append(r"C:\Program Files\Google\google_appengine") 
sys.path.append(r"C:\Program Files\Google\google_appengine\lib\yaml\lib") 
sys.path.append(r"C:\Program Files\Google\google_appengine\lib\fancy_urllib") 

from google.appengine.ext.remote_api import remote_api_stub 
from google.appengine.ext import db 

def auth_func(): 
    return raw_input('Username:'), getpass.getpass('Password:') 

if len(sys.argv) < 2: 
    print "Usage: %s app_id [host]" % (sys.argv[0],) 
app_id = sys.argv[1] 
if len(sys.argv) > 2: 
    host = sys.argv[2] 
else: 
    host = '%s.appspot.com' % app_id 

remote_api_stub.ConfigureRemoteDatastore(app_id, '/remote_api', auth_func, host) 

code.interact('App Engine interactive console for %s' % (app_id,), None, locals()) 

用法:

remote_console.py YOUR_APP_ID YOUR_APP_ID.appspot.com 

remote_console.py s~YOUR_APP_ID YOUR_APP_ID.appspot.com 

出於某種原因,一些應用程序ID將與齊讀〜。

+0

試過兩個,仍然得到相同的錯誤... – Hadi 2012-01-18 09:41:05

+0

@哈迪:我試圖上傳你的app.yaml到我的服務器,並沒有這樣的錯誤。所以我認爲這個錯誤應該來自其他地方。你更新了你的appengine SDK嗎?您是否正確部署您的應用程序? – lucemia 2012-01-18 17:49:24

+0

感謝您的耐心......我沒有上傳應用程序的問題......我想上傳一些數據到我的數據存儲(因爲我似乎無法使用sqlite)使用api_remote(他們告訴我這是要走的路......) – Hadi 2012-01-18 19:19:14