Sqlalchemy ResultProxy行为取决于调试器中的单步执行

Sqlalchemy ResultProxy行为取决于调试器中的单步执行,sqlalchemy,Sqlalchemy,我花了好几个小时试图理解为什么我的查询不起作用。如果我在调试器中单步执行,则从execute()返回的ResultProxy会在单步执行execute()后立即重置。如果我只是运行它,下面将打印出一组记录。我可以在print()语句上设置断点,它将立即停止打印。或者我可以一步一步地通过,什么也不会打印出来 我的数据库是mysql,我尝试了mysqlconnector和pymysql,行为相同。知道为什么会这样吗 # this prints results, but stops printing

我花了好几个小时试图理解为什么我的查询不起作用。如果我在调试器中单步执行,则从execute()返回的ResultProxy会在单步执行execute()后立即重置。如果我只是运行它,下面将打印出一组记录。我可以在print()语句上设置断点,它将立即停止打印。或者我可以一步一步地通过,什么也不会打印出来

我的数据库是mysql,我尝试了mysqlconnector和pymysql,行为相同。知道为什么会这样吗

# this prints results, but stops printing as soon as I start stepping in debugger
q = session.query( Contract.id, Contract.longName ).filter(Contract.symbol=='ABE')
res = session.execute(q)
for el in res:
    print (el[0], " ", el[1])

可能是某种种族状况。你有线程或多个进程吗?不,不是在简单的脚本中,我把这个测试简化为你可以发布整个脚本吗?