gpt4 book ai didi

python - Pexpect 和 PyCharm - 设备的不适当的 ioctl

转载 作者:太空狗 更新时间:2023-10-29 18:12:46 26 4
gpt4 key购买 nike

我正在尝试运行一个基本的 Pexpect 脚本:

import pexpect
ftp_process = pexpect.spawn('ftp')
ftp_process.interact()

当代码直接从终端运行时,代码按预期工作。如果我使用 PyCharm 的运行/调试运行代码,我会收到以下错误:

Traceback (most recent call last):
File "/path/to/code/test.py", line 3, in <module>
ftp_process.interact()
File "/usr/local/lib/python3.4/site-packages/pexpect/__init__.py", line 1645, in interact
mode = tty.tcgetattr(self.STDIN_FILENO)
termios.error: (25, 'Inappropriate ioctl for device')

默认情况下,Pexpect 与 PyCharm 的运行/调试窗口的交互方式似乎不起作用。有什么方法可以通过特定的 PyCharm 设置来解决这个问题吗?如果没有,是否有其他方法可以解决此问题?

编辑

上面的代码只是一个导致问题的简化示例。 pexpect 的其他功能(如expect()sendline() 等)仍然需要。

最佳答案

注意:这只是一种解决方法,但确实有效。

如果通过使用单独的脚本从伪 tty 调用脚本,则可以获得所需的结果。例如,使用 pty.spawn("python my_script.py".split()) 其中 my_script.py 是使用 pexpect 的那个。

我发现有一个脚本可以在 try/except 中尝试调用 pexpect 并在发现错误后让脚本在内部重新调用一个伪 tty。

在原始问题的评论中归功于 J.F. Sebastian。

关于python - Pexpect 和 PyCharm - 设备的不适当的 ioctl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862983/

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