我只是想知道第二次使用哪个版本的Python Google Appengine Python 2.7运行时。
这是2.6以来绝对有效的Python,我希望query_string之后是“test”:
query_string = "(test)"
query_string = query_string.translate(None, "()")
但是在Google Appengine上,它会导致TypeError translate()只接受一个参数(给定2个)
上周,我们遇到了另一个奇怪的行为,一个叫做另一个函数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
答案 0 :(得分:5)
根据您的更新进行编辑:
这可能是也可能不是问题的根本原因,但您的app.yaml
不正确。 threadsafe
的允许值为true
或false
。链接到文档的相应部分:https://developers.google.com/appengine/docs/python/config/appconfig
原始答案:
唯一可能发生这种情况的方法是,如果您没有指定GAE应该在app.yaml
中为您的应用程序使用Python 2.7运行时。以下是an example from the excellent documentation:
application: helloworld
version: 1
# vvvvvvvv
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.app
如果您没有为python27
指定runtime
GAE将使用Python 2.5
答案 1 :(得分:2)
有点尴尬,GAE的行为绝对正常, 我使用的字符串是一个unicode对象,而不是str。