2011-10-30 4 views
10

私のgaeアプリケーションをPython 2.7に移行しています。これは私の新しいapp.yamlを次のとおりです。私のapp.yamlを2.7に移行するにはどうすればいいですか?

application: webfaze 
version: main 
runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 
- url: /mapreduce(/.*)? 
    script: mapreduce/main.application 

- url: /(.*\.(html|css|js|gif|jpg|png|ico|swf)) 
    static_files: static/\1 
    upload: static/.* 
    expiration: "1d" 

- url: .* 
    script: main.application 

- url: /task/.* 
    script: main.application 
    login: admin 

しかし、私は、このエラーメッセージが出ます:

Error parsing yaml file: 
Invalid object: 
threadsafe cannot be enabled with CGI handler: mapreduce/main.application 
    in "webfaze/app.yaml", line 22, column 1 

エラーを解決する方法を教えてもらえますか?プロジェクトのルートに

if (handler.script and (handler.script.endswith('.py') or 
     '/' in handler.script)): 
     raise appinfo_errors.ThreadsafeWithCgiHandler(
        'threadsafe cannot be enabled with CGI handler: %s' % 
        handler.script) 

移動application.pyをし、それに応じて、ハンドラのパスを変更します。

答えて

7

source codeをチェック、それはあなたが任意のスラッシュなしであなたのハンドラパスを定義する必要があることになります。

+0

私は現時点では使用していないので、mapreduceの部分を省略することができます。今更新は構文チェックに合格しました。私はちょうど 'set_default_version'を実行したところで何が起きたのか、興味があります –

+7

または' mapreduce.main.application'という名前を付けました。 –

+0

@Nick Johnsonありがとうございました。 –

7

変更:

- url: /mapreduce(/.*)? 
    script: mapreduce/main.application 

へ:

- url: /mapreduce(/.*)? 
    script: mapreduce.main.application 

あなたはまた、1つが存在しない場合は、 'のMapReduce' フォルダに__init__.pyを追加する必要がありますすでにある。それは、Pythonがモジュールとしてフォルダを解釈するようになります。

+0

最新バージョンを試しましたが、アプリからAPPに変更されたようです – wonglik

+0

@wonglik「最新バージョン」ではバージョンはそうだろう。私はSDKのv.1.7.0を実行していて、 'アプリケーション'を 'app'に変更すると500(サーバー)エラーがスローされます。 –

+0

申し訳ありません。私はMapReduce Bundleの最新バージョンを意味しました - 1.6.2はhttps://developers.google.com/appengine/downloadsから入手しました – wonglik

関連する問題