2012-11-25 70 views
1

我正試圖在Google App Engine中使用Python進行學習,但無法使教程正常工作。但最終,我想寫一個Python腳本,它將返回服務器中文件夾中的文件列表爲JavaScript。適用於Google App Engine的腳本處理程序

這是我目前有:

+MainProj 
    + static 
     +scripts 
      . __init__.py 
      . helloworld.py 
    . app.yaml 

在helloworld.py

import webapp2 

class MainPage(webapp2.RequestHandler): 
    def get(self): 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.response.write('Hello, webapp2 World!') 
app = webapp2.WSGIApplication([('/.*', MainPage)], debug=True) 

app.yaml中

application: applicationname 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes 

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

我收到了服務器錯誤

HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfill the request. 

任何人都可以幫助我的設置有什麼問題?

回答

3

每個文件夾在你的包路徑中('static.scripts.helloworld.app')需要有__init__.py才能正確導入,所以要麼添加一個到'static',要麼(更明智地在我看來)將helloworld.py移動到頂部,並在y中使用'helloworld.app'我們的app.yaml。

+0

這解決了它。謝謝!只需在'static'文件夾中添加__init__.py –

-1

所有你在app.yaml處理程序需要的是:

- url: /.* 
    script: static.scripts.helloworld.py 

並確保你也有你的helloworld.py底部代碼真正啓動應用程序和監聽:

from google.appengine.ext.webapp import util 
# granted, you might want to replace "webapp" with "webapp2" here 

def main(): 
    util.run_wsgi_app(app) 

if __name__ == '__main__': 
    main() 
+0

我添加了你提到的代碼並更改了app.yaml,現在我得到了一個不同的錯誤。加載應用程序配置時發生致命錯誤: 無法使用CGI處理程序啓用線程安全:static.scripts.helloworld.py –

+0

在您的'app.yaml'中,只需設置'threadsafe:no'並重試。 – jdotjdot

+0

我得到的服務器錯誤和以前一樣。我只是從[鏈接](https://developers.google.com/appengine/docs/python/gettingstartedpython27/helloworld) –

相關問題