2013-02-26 68 views
2

我只是第二次想知道哪個版本的Python用於Google Appengine Python 2.7運行時的 。Appengine使用Python的版本/風格?

這絕對是有效的,因爲2.6的Python,我希望QUERY_STRING是「測試」算賬:

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

但在谷歌AppEngine上,它會導致一個TypeError 翻譯()正好有一個參數(2中)

上週我們遇到了另一個奇怪的行爲,一個叫做另一個函數b的函數可能會引發ValueError。我可以在函數b中捕獲異常,但不能在後端由於異常傳播而崩潰。 雖然幾個小時後,這個bug(?)被修正了。

編輯:我使用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 

回答

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 

如果你沒有爲runtime GAE指定python27將使用Python 2.5

+0

是的,我正在使用Python 2.7運行時,我只是將該信息添加到問題。 – Chris 2013-02-26 22:39:15

2

這是一個有點尷尬,GAE是行爲完全是正常現象, 我使用的字符串是unicode對象,而不是str。

+0

FWIW,這是我第二次瞭解到這一點,並且第一次明白了原因。謝謝 :) – mgilson 2014-05-12 23:13:02