Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sh模块:传递_done参数(带或不带_bg=True)会导致REPL挂起,我做错了什么?_Python_Python 3.x_Shell_Freeze - Fatal编程技术网

Python sh模块:传递_done参数(带或不带_bg=True)会导致REPL挂起,我做错了什么?

Python sh模块:传递_done参数(带或不带_bg=True)会导致REPL挂起,我做错了什么?,python,python-3.x,shell,freeze,Python,Python 3.x,Shell,Freeze,我试图理解Python3sh模块中的\u does参数做了什么。在文档中,我没有找到比和更详细的描述 在Python REPL中尝试中的简单命令时,其中一些命令会冻结REPL,直到我发送键盘中断: Python 3.8.3(默认值,[当前日期]) linux上的[GCC 10.1.0] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>进口sh >>>打印(上海版本) 1.14.0 >>>def done(*args,**kwd):打印(“使用”,args,kwd调用完成”

我试图理解Python3
sh
模块中的
\u does
参数做了什么。在文档中,我没有找到比和更详细的描述

在Python REPL中尝试中的简单命令时,其中一些命令会冻结REPL,直到我发送键盘中断:

Python 3.8.3(默认值,[当前日期])
linux上的[GCC 10.1.0]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口sh
>>>打印(上海版本)
1.14.0
>>>def done(*args,**kwd):打印(“使用”,args,kwd调用完成”)
... 
>>>sh.true(_bg=true,_done=done)
^CTraceback(最近一次通话最后一次):
文件“”,第1行,在
文件“/usr/lib/python3.8/site packages/sh.py”,第975行,在__
返回str(self)
文件“/usr/lib/python3.8/site packages/sh.py”,第930行,在__
返回self.\uuuuUnicode\uuuuuu()
文件“/usr/lib/python3.8/site packages/sh.py”,第937行,采用unicode编码__
如果self.process和self.stdout:
文件“/usr/lib/python3.8/site packages/sh.py”,第869行,标准输出
self.wait()
文件“/usr/lib/python3.8/site packages/sh.py”,第831行,正在等待
exit_code=self.process.wait()
文件“/usr/lib/python3.8/site packages/sh.py”,第2457行,正在等待
使用self.\u等待\u锁定:
键盘中断
>>>sh.false(_bg=True,_done=done)
[打印异常,然后冻结]
>>>sh.sleep(“1”,_bg=True,_done=done)
[冻结]
>>>sh.sleep(“1”,完成=完成)
[冻结]
>>>sh.true(_done=done)
使用(,True,0){}完成调用
>>>sh.false(_done=done)
使用(,False,1){}完成调用
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python3.8/site packages/sh.py”,第1520行,在调用中__
返回RunningCommand(cmd、call_args、stdin、stdout、stderr)
文件“/usr/lib/python3.8/site packages/sh.py”,第784行,在__
self.wait()
文件“/usr/lib/python3.8/site packages/sh.py”,第841行,正在等待
self.handle\u命令\u退出代码(退出代码)
文件“/usr/lib/python3.8/site packages/sh.py”,第865行,在handle\u命令\u exit\u代码中
加薪
sh.ErrorReturnCode_1:
运行:/usr/bin/false
标准:
标准:
当我通过
\u bg=True
时和当我不通过时都会发生这种情况。到目前为止,在我的尝试中,这仅在我运行立即返回的命令(
true
false
)时才会发生,但在我运行
sleep 1
时总是会发生

我是否不正确地使用了
\u done
参数,是否有更多的扩展文档可以让我了解
\u done
参数的用途