奇怪的Python子进程挂起
我有一个无限循环,可以这样做:奇怪的Python子进程挂起,python,windows-xp,python-3.3,Python,Windows Xp,Python 3.3,我有一个无限循环,可以这样做: print("text for debugging my issue1") execution=["python", "-u", mainScript, directory, folder, cardIP] _,_=subprocess.Popen(execution, shell=True).communicate() 在MainScript中,第一行是: print("text for debugging my issue2") 在那一行之后,我只
print("text for debugging my issue1")
execution=["python", "-u", mainScript, directory, folder, cardIP]
_,_=subprocess.Popen(execution, shell=True).communicate()
在MainScript
中,第一行是:
print("text for debugging my issue2")
在那一行之后,我只是打印了很多东西。(在MainScript
中)
现在,我的问题是,大多数情况下,它工作正常,我可以看到打印:
"text for debugging my issue1"
"text for debugging my issue2"
[data printed in 'MainScript']
但有时,它会卡在,\uu=subprocess.Popen(execution,shell=True)。communicate()
,表示我看到了:
"text for debugging my issue1"
"text for debugging my issue2"
[data printed in 'MainScript']
"text for debugging my issue1"
"text for debugging my issue2"
[data printed in 'MainScript']
"text for debugging my issue1"
///Missing "text for debugging my issue2" here and all of 'MainScrip' output,
///Here it just stop working.
它只是挂着。当我按任意键时,它立即继续工作,打印所有内容,程序从停止的位置开始运行。您尝试过使用简单脚本作为主脚本吗?调试时尝试删除任何变量。可能是你的脚本导致了你看到的。我试过了。问题是我需要对它进行多次测试,有1\5次这样的情况发生,所以即使用一个简单的脚本检查它也不是傻瓜。还有,还有什么其他原因可以让这个函数挂在自己旁边呢?(其代码)我可以看到,没有多少人遇到过这个问题,我将尝试检查subprocess.py模块其他相关问题:“注意:读取的数据在内存中缓冲,因此如果数据大小很大或不受限制,请不要使用此方法。”这是关于在堆栈溢出中讨论的communicate()函数的。但不是这个问题——如果我使用无缓冲python('python-u'),它会使它成为无缓冲的吗?