Python googleappengine日志系统中的无限递归
在我正在开发的appengine应用程序的本地实例上,我体验到了日志系统的无限递归。不幸的是,由于问题在于日志系统,我看不到错误消息。python'print'命令也不适用于googleappengine应用程序,因此我无法显示任何有用的信息 即使只是访问网站根目录,问题也显而易见 这似乎是一个重要的问题,但除此之外,日志系统应该可以工作,但事实并非如此 站点的已部署版本正在运行,这让我想到了一个可能的本地配置/系统问题 我使用的是Python2.7.2和当前的\u版本\u ID=1.1 下面是该错误的很长的堆栈跟踪:Python googleappengine日志系统中的无限递归,python,google-app-engine,logging,recursion,Python,Google App Engine,Logging,Recursion,在我正在开发的appengine应用程序的本地实例上,我体验到了日志系统的无限递归。不幸的是,由于问题在于日志系统,我看不到错误消息。python'print'命令也不适用于googleappengine应用程序,因此我无法显示任何有用的信息 即使只是访问网站根目录,问题也显而易见 这似乎是一个重要的问题,但除此之外,日志系统应该可以工作,但事实并非如此 站点的已部署版本正在运行,这让我想到了一个可能的本地配置/系统问题 我使用的是Python2.7.2和当前的\u版本\u ID=1.1 下面是
--> --> -->
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2781, in _HandleRequest
self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2669, in _Dispatch
base_env_dict=env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 692, in Dispatch
base_env_dict=base_env_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1731, in Dispatch
self._module_dict)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1631, in ExecuteCGI
reset_modules = exec_script(config, handler_path, cgi_path, hook)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1319, in ExecuteOrImportScript
exec module_code in script_module.__dict__
File "C:\Program Files\Google\google_appengine\google\appengine\ext\admin\__init__.py", line 79, in <module>
from google.appengine.ext.webapp import _template
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1858, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1722, in FindAndLoadModule
description)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1665, in LoadModuleRestricted
description)
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\_template.py", line 37, in <module>
from google.appengine.ext.webapp import template
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1858, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1722, in FindAndLoadModule
description)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 676, in Decorate
return func(self, *args, **kwargs)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_import_hook.py", line 1665, in LoadModuleRestricted
description)
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\template.py", line 61, in <module>
webapp._config_handle.django_setup()
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 153, in _django_setup
__django_version_setup()
File "C:\Program Files\Google\google_appengine\google\appengine\ext\webapp\__init__.py", line 99, in __django_version_setup
'http://code.google.com/appengine/docs/python/tools/'
File "C:\Python27\lib\logging\__init__.py", line 1582, in warning
root.warning(msg, *args, **kwargs)
File "C:\Python27\lib\logging\__init__.py", line 1144, in warning
self._log(WARNING, msg, args, **kwargs)
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1250, in _log
self.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 1260, in handle
self.callHandlers(record)
File "C:\Python27\lib\logging\__init__.py", line 1300, in callHandlers
hdlr.handle(record)
File "C:\Python27\lib\logging\__init__.py", line 744, in handle
self.emit(record)
File "C:\Python27\lib\logging\__init__.py", line 870, in emit
self.handleError(record)
File "C:\Python27\lib\logging\__init__.py", line 797, in handleError
None, sys.stderr)
File "C:\Python27\lib\traceback.py", line 124, in print_exception
_print(file, 'Traceback (most recent call last):')
File "C:\Python27\lib\traceback.py", line 13, in _print
file.write(str+terminator)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 1492, in write
logging.getLogger()._log(logging.ERROR, message, ())
File "C:\Python27\lib\logging\__init__.py", line 1249, in _log
record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra)
File "C:\Python27\lib\logging\__init__.py", line 1223, in makeRecord
rv = LogRecord(name, level, fn, lno, msg, args, exc_info, func)
File "C:\Python27\lib\logging\__init__.py", line 266, in __init__
self.levelname = getLevelName(level)
File "C:\Python27\lib\logging\__init__.py", line 167, in getLevelName
return _levelNames.get(level, ("Level %s" % level))
RuntimeError: maximum recursion depth exceeded while getting the str of an object
事实上,重命名应用程序的目录并使用不同的端口通过google app engine launcher重新导入解决了我的问题,但可能不是bug。你需要上传相关的源代码才能得到@skreft所说的真实答案 尽管对于日志记录,请使用
导入日志记录
,然后使用logging.info()
来帮助查找问题
我建议现在评论日志代码,看看堆栈跟踪显示了什么。然后,如果没有收到错误,开始逐段添加日志代码,直到找到错误。是否可以发布代码摘录?实际上,main.py是一个包含数千行的大型文件。我也不确定这是否是问题的根源,因为递归是在日志模块中进行的。我最近的更改似乎与bug无关,因为我已经撤销了这些更改,bug仍然存在。至少您发布的回溯表明问题源于您导入模块时(从myapp.music\u推荐导入get\u song\u推荐、get\u song\u推荐、学习\u数据、学习\u song、从\u视频和myapp.models.song导入歌曲中学习\u song)。另外,您使用的python版本和dev\u appserver是什么?您可以使用
logger.info('Some debug info'))
调试任何东西..并在日志输出中查看结果,而不是打印。不要在GAEIt中使用打印是一个有趣的问题。似乎日志代码遇到错误并试图记录错误消息。这可能是SDK中的一个错误,但很难跟踪,因为您似乎没有简单的可复制案例至少,我可以试试。如果这种情况再次发生,我希望你将尝试减少你的应用程序,使其代码量最小化,然后在应用程序引擎跟踪器中提交一个bug。
from google.appengine.ext import webapp
import fix_path
import sys
import os
import urllib
import urllib2
import pprint
import logging
import cgi
import random
import Cookie
import datetime
import time
import urlparse
import urllib2
import urllib, cStringIO
import hashlib
import copy
from urllib import urlretrieve
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
from google.appengine.ext.webapp import template
from google.appengine.api import users
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
from google.appengine.dist import use_library
from google.appengine.api import memcache
from django.utils import simplejson
from gaesessions import get_current_session
from myapp.models import *
from myapp.models import sequence_selection as models_sequence_selection
from myapp.sequence_selection import utils as sequence_selection_utils
from myapp.models import video
from myapp.models.video import *
from myapp.models.song import *
from myapp.models.flashified import *
from myapp.music_recommendation import get_song_recommendations,get_song_recommendations_learning_data,learn_song,learn_song_from_video
from myapp.core import is_number
from myapp import mailing
from myapp import search
from myapp import motif
from myapp import retrieve_instagram
from myapp import coords_distance
from myapp import performancetest
from google.appengine.api import mail
from google.appengine.api import images