gpt4 book ai didi

python - 使用多处理时 pexpect 运行失败

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:54 25 4
gpt4 key购买 nike

我在 python 中使用 pexpect(版本 3.3)和多处理(版本 2.6)代码如下:

import pexpect, multiprocessing

def login(h, u, p):
ssh = pexpect.spawn('ssh %s@%s' % (u, h))
index = ssh.expect([ssh_change_key, ssh_new_key, 'password:'], timeout=5)

def worker():
login('1.2.3.4', 'abc', 'abc')

if __name__ == '__main__':
e_process = multiprocessing.Process(target=worker, args=[])
e_process.start()
e_process.join()

但运行失败,并带有以下回溯:

Process Process-1:
Traceback (most recent call last):
File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
self.run()
File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
self._target(*self._args, **self._kwargs)
File "test.py", line 8, in worker
login('1.2.3.4', 'abc', 'abc')
File "test.py", line 4, in login
ssh = pexpect.spawn('ssh %s@%s' % (u, h))
File "/usr/lib/python2.6/site-packages/pexpect-3.3-py2.6.egg/pexpect/__init__.py", line 493, in __init__
fd = sys.__stdin__.fileno()
ValueError: I/O operation on closed file

但是 pexpect 在非多处理环境中运行良好,为什么?

最佳答案

这似乎是 pexpect 3.3 版本的问题。根据我的经验,pexpect 版本 3.1 和 3.2 不会出现此问题(使用 python 2.7 进行测试)。

关于python - 使用多处理时 pexpect 运行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com