奇怪的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'),它会使它成为无缓冲的吗?