【问题标题】:Sometimes scripts idle and require me to press RETURN in order to unlock them - Python有时脚本空闲并要求我按 RETURN 以解锁它们 - Python
【发布时间】:2011-06-11 04:22:16
【问题描述】:

这种情况已经发生了很多次,并且无法以任何方式解释这种行为。

我经常为一些快速任务编写快速 Python 脚本,这些任务通常是使用 Django 的 ORM 的行迭代。

示例:

from core.models import MyModel

ITEM_IDS = [...]

for index, item_id in enumerate(ITEM_IDS):
    print index
    if MyModel.objects.filter(serial=item_id).count():
        do_something()
        print index, item_id

有时脚本会无限期地在其中一次迭代中停止, 按 RETURN 快速恢复交互!!!

编辑:这发生在 Windows 上!


知道发生了什么吗? :)

【问题讨论】:

  • 嗯,你在do_something()做什么?它会在某个地方等待raw_input 吗?
  • 操作系统和架构在这里可能是有用的知识。我会责怪 Windows :)
  • @Spacedman:它实际上是在 Windows 上运行的!!有什么想法吗?
  • 打印后sys.stdout.flush()会怎样?
  • Windows 任务管理器是否会在发生这种情况时为您提供任何见解?任何其他过程像疯了一样旋转?您有多确定快速按 RETURN 是否可以解决问题?确定不只是巧合?你有多久没有尝试让它独自一人?您可以在 do_something() 中添加一些打印语句以更好地了解停止的位置吗?

标签: python sql sql-server windows django


【解决方案1】:

有没有可能是终端窗口(或“dos 框”或其他什么)应该受到责备?

例如,在许多终端窗口中,如果有滚动条,而您滚动到底部以外的任何地方,它就会一直停留在那里;因此,似乎什么都没有发生。但是当你按下一个键时,终端窗口立即滚动到底部,你可以看到正在打印的输出?

只是一个疯狂的猜测。

【讨论】:

    猜你喜欢
    • 2019-05-17
    • 2011-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2019-01-17
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多