在Appengine中使用了什么版本/风格的Python?

时间:2013-02-26 21:56:54

标签: python google-app-engine

我只是想知道第二次使用哪个版本的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

2 个答案:

答案 0 :(得分:5)

根据您的更新进行编辑:
这可能是也可能不是问题的根本原因,但您的app.yaml不正确。 threadsafe的允许值为truefalse。链接到文档的相应部分: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。