python程序在命令行中停止

标签 python cmd vmware

我用 python 搜索了很多关于 VMware 的问题,但我没有找到任何关于我的问题的信息。 我的问题是 python 程序卡住,进程仍在运行,但它不使用 CPU,内存使用也没有改变。 程序不返回任何异常或任何东西......它只是卡住并且永远不会返回执行。 它看起来是随机发生的,我的机器没有可用内存不是问题,因为同时我可以在另一个 session 中执行它。

我的机器是虚拟机:Windows Server 2008 64 位,VMware Tools 9.4.5

我试过 python:2.7、3.3 和 3.4

我的示例脚本:(但不仅是这个脚本卡住)

print("START")
for i in range(0, 1000): 
  print("step: " + str(i)) 
  file = open("./test_file.csv", "r") #file size is 1.2GB but I have 10GB RAM
  for line in file.readlines(): 
    pass    
  file.close() #close the file
print("END")

示例输出是:

START
step 0
step 1
step 2
step 3
step 4

然后它卡住了,在哪一步(有时是 4、15、34...)是随机的。我所能做的就是终止进程并再次运行它。 在执行过程中,我可以看到该程序可重复使用 1.2GB RAM 并释放...使用并释放。卡住总是在释放内存之后,从此时开始内存使用稳定,CPU 使用率为 0%。

我在 IDLE 中运行脚本来使用调试器和堆栈查看器,但是当程序卡住时,整个空闲状态都没有响应。 我也在其他非虚拟机上试过,没有问题。

如果有任何建议,如何解决或调试此类问题,我将不胜感激。

最佳答案

我解决了它,问题不在于 python 或 VMware.... 仅凭我对 Microsoft 产品的了解。

我没有提到我使用 windows 命令行执行 python 脚本,“卡住”的原因是 cmd。 我不知道如果你在命令行中标记某事,cmd 会暂停执行的任务。

我只在这个虚拟机上设置了“QuickEdit Mode”。您可以按照以下步骤更改它:右键单击 cmd 面板 -> 属性 -> 选项卡:“选项” -> 部分:“快速编辑模式”)

在此模式下,如果您单击命令行,它将标记某事并...暂停已执行的任务... 我关闭了“快速编辑模式”,程序运行完美。 如果没有 QuickEdit 模式,您无法通过单击在命令行中标记任何内容。

我知道……我应该让自己感到羞耻……我确实这么做了。

关于python程序在命令行中停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24571981/

相关文章:

linux - 从 Linux 中的 tgz 中提取未压缩的文件

Ansible/vmware_guest_network 添加后连接不上nic

python - 如何使用 Python 查找过去 6 个月内的所有日期?

windows - 批量删除小于一定大小的文件

cmd - 为什么在cmd中输入一个^多问我一个问题?然后什么都不做

powershell - 从网络位置复制列表中定义的文件

适用于开发人员的VMware或Hyper-V

python - 如何在 QTextEdit PYQT 中按下按钮时突出显示和更改行选择

python - 如何在 Python 中比较两个字典键?

python - 如何检测基于图 block 的移动中的碰撞?