Python 2.5 から Python 2.7 に移行しようとしましたが、毎回同じエラーが発生します。
Python 2.5 で app.yaml ファイルと 1 つのスクリプト main.py のみを使用して非常に簡単なテストを行い、正常に動作しました。スクリプトは、すべてが正常に機能することを確認するための単なる Hello World タイプです。
app.yaml
application: sparepartsfinder
version: 1
runtime: python
api_version: 1
handlers:
- url: /blog
script: main.py
- url: /blog/new_entry
script: main.py
main.py
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
class MainPage(webapp.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, webapp World!')
application = webapp.WSGIApplication(
[('/', MainPage),
('/blog', MainPage),
('/blog/new_entry',MainPage),
('/blog/archive/.*',MainPage)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()
Python 2.7 に変更するときは、Google App Engineのドキュメントに従って、app.yaml スクリプトと main.py スクリプトの両方を変更します。
app.yaml
application: sparepartsfinder
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /blog
script: main.py
- url: /blog/new_entry
script: main.py
- url: /blog/archive/.*
script: main.py
- url: .*
script: main.py
main.py
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.out.write('Hello prueba!')
app = webapp2.WSGIApplication([('/', MainPage),
('/blog', MainPage),
('/blog/new_entry',MainPage),
('/blog/archive/.*',MainPage)],
debug=True)
残念ながら、ローカルでも、新しい構成を Google App Engine にアップロードしようとしても機能しません。(私はいつも同じ間違いをします)。
Windows XP のマシン (Python 2.5 と 2.7 の両方を使用) の問題は理解できるかもしれませんが、アップロード時には理解できません。
これはエラーです:
2012-05-04 13:02:07 実行中のコマンド: "[u'C:\Python25\python2.5.exe', '-u', 'C:\Archivos >de programa\Google\google_appengine\appcfg.py ', '--no_cookies', u'--email=salvador.sanjuan@gmail.com', '--passin', 'update', 'C:\Documents and Settings\SSanjuan\Mis documentos\Dropbox\Dropbox\ Python\SpareParts']" yaml ファイルの解析エラー: 無効なオブジェクト: CGI ハンドラーでスレッドセーフを有効にできません: "C:\Documents and Settings\SSanjuan\Mis documentos\Dropbox\Dropbox\Python\SpareParts\app.yaml の main.py "、27 行目、1 列目 2012-05-04 13:02:31 (プロセスはコード 1 で終了しました)