我正在尝试运行以下使用 pythos 'subprocess' 模块的代码。

subprocess.call(cli_args, stdout=client_log, stderr=client_log, timeout=10)

我正在使用超时争论,如果子进程卡在中间,则提到 here 从这一行跳过,通过杀死它。
但是当我运行这个时,我收到以下错误。
Traceback (most recent call last):
  File "test.py", line 152, in <module>
    ret = runServiceTest(test_name, server_executable, server_extra_args, client_executable, client_extra_args, protocol, transport, 9090, 0, 0)
  File "test.py", line 102, in runServiceTest
    ret = subprocess.call(cli_args, stdout=client_log, stderr=client_log, timeout=10)
  File "/usr/lib/python2.7/subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
TypeError: __init__() got an unexpected keyword argument 'timeout'

这是什么原因?我该如何解决这个问题?我的完整代码可以在 here 中找到。

最佳答案

根据您的 print 语句判断,您使用的是 Python2.x,其中 subprocess.call 没有 timeout 参数:

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

https://docs.python.org/2/library/subprocess.html

关于python - __init__() 在 python 子进程中得到了一个意外的关键字参数 'timeout',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24264922/

10-12 21:04