2016-03-21 10 views
0

Bu projeyi Google App Engine'de çalıştırıyorum, ancak kodu dağıtmadan önce sınava yönelik olarak sınamak için yerel kodu çalıştırdığımda, günlük herhangi bir hata vermez. kod iyi çalışıyor.GAE, yerel sınamalar için alınamayan bir hata veriyor

Bunu dağıtırken GAE bana bir NoneType hatası veriyor. Bu hatayı düzeltmem gerekiyor, ancak anlamadığım şey, yerel olarak değil, dağıtımdan sonra hatayı almam mı?

logal günlüğü:

2016-03-21 21:00:34,466 urlfetch_stub.py:540] Stripped prohibited headers from URLFetch request: ['Host', 'Content-Length'] 
INFO  2016-03-21 21:00:34,671 module.py:787] default: "GET /testmsg HTTP/1.1" 200 - 

Başarı, hata.

GAE'nin günlüğü:

Traceback (most recent call last): 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1535, in __call__ 
rv = self.handle_exception(request, response, e) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__ 
rv = self.router.dispatch(request, response) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher 
return route.handler_adapter(request, response) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1102, in __call__ 
return handler.dispatch() 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 572, in dispatch 
return self.handle_exception(e, self.app.debug) 
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 570, in dispatch 
return method(*args, **kwargs) 
File "/base/data/home/apps/e~thalia-bot/1.391538208721323325/main.py", line 84, in post 
textlower = text.lower() 
AttributeError: 'NoneType' object has no attribute 'lower' 

Kodu:

text = message.get('text') #Text that the bot will receive 
textlower = text.lower() #Convert the text to lowercase 

Düzenleme: (farklı kodlarla) birkaç görevlendiren sonra

orijinal kodu değiştirmeden çalışıyor. GAE'de bana hata veren aynı kod şu anda iyi çalışıyor. Ancak sabit değil çünkü gelecekteki konuşmalar aynı sorunu tekrar gündeme getirecek. Şimdi daha da kafam karıştı, burada neyin yanlış gittiğini kimse fark etmiyor mu?

cevap

0

GAE'nin hata dağıtım ile yapmak için çok fazla değil, None olup olmaması text (message.get('text') yani sonucu) ile yıkanmıştır.

Aynı kodun yeniden dağıtımdan sonra da çalıştığı gerçeği, başka bir değişkenin bir işaretinin çok iyi bir göstergesi olabilir; örneğin, istekte bulunulması olabilir.

text.lower() numaralı telefonu aramadan önce text değerini görüntülemeyi deneyin, büyük olasılıkla 2 durumda farklı bir değer görürsünüz - yine, dağıtımın kendisi ile ilgili bir şey yok.

+0

Ne dediğini anladım, mantıklı, hasta bir şans ver! – Kevin