2

Google Appengine Python 2.7 ランタイムに使用されている Python のバージョンをもう一度考えてみました。

これは 2.6 以降の絶対に有効な Python であり、その後 query_string が「テスト」されることを期待しています。

query_string = "(test)"
query_string = query_string.translate(None, "()")

しかし、Google Appengine では、TypeError translate() が 1 つの引数 (指定された 2 つ) を取ります。

先週、関数 a が別の関数 b を呼び出し、ValueError を発生させる可能性のある、別の奇妙な動作が発生しました。関数 b 内で例外をキャッチできましたが、a ではキャッチできませんでした。例外の伝播が原因で、バックエンドがクラッシュしただけです。しかし、数時間後、このバグ (?) は修正されました。

編集:私はPython 2.7ランタイムを使用しており、sys.version戻ります2.7.3 (default, Oct 15 2012, 11:27:13)

app.yaml:

application: test
version: 1
runtime: python27
api_version: 1
threadsafe: no
4

2 に答える 2

5

更新に基づいて編集します。
これが問題の根本原因である場合とそうでない場合がありますが、あなたapp.yamlは正しくありません。の許容値threadsafetrueまたはfalseです。ドキュメントの適切なセクションへのリンク: https://developers.google.com/appengine/docs/python/config/appconfig


元の回答:
これが発生する可能性がある唯一の方法は、GAE が でアプリに Python 2.7 ランタイムを使用するように指定していない場合ですapp.yaml。以下は、優れたドキュメントの例です。

application: helloworld
version: 1
#        vvvvvvvv
runtime: python27
api_version: 1
threadsafe: true

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

指定しない場合python27runtimeGAE は Python 2.5 を使用します

于 2013-02-26T22:02:52.287 に答える
2

少し恥ずかしいです。GAE の動作はまったく正常です。使用した文字列は、str ではなく Unicode オブジェクトでした。

于 2013-02-27T06:47:13.323 に答える