You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows10下Python调用pexpect.spawn报错:模块无spawn属性

解决Pexpect模块AttributeError: 'module' has no attribute 'spawn'问题

环境信息

  • 操作系统:Windows 10
  • Python版本:3.10(从虚拟环境名称Python310_Services_VENV推测)

代码片段

ssh_command = f"ssh {ssh_username}@{ssh_address} -p {ssh_port}"
ssh_session = pexpect.spawn(ssh_command, encoding='utf-8')

报错信息

(Python310_Services_VENV) C:\UPScripts>python test.py
Trying to establish SSH connection.
Traceback (most recent call last):
  File "C:\UPScripts\test.py", line 13, in check_power_status
    ssh_session = pexpect.spawn(ssh_command, encoding='utf-8')
AttributeError: module 'pexpect' has no attribute 'spawn'

解决方法

核心原因

Windows系统不支持Unix-like的pty伪终端机制,而标准pexpect的spawn依赖该机制,因此在Windows下无法直接调用。以下是三种可行的解决方案:

方案1:使用pexpect内置的pxssh模块

pxssh是pexpect专门为SSH连接设计的子模块,天然支持Windows环境,代码调整如下:

from pexpect import pxssh

# 初始化SSH会话
ssh_session = pxssh.pxssh()
# 登录目标主机
ssh_session.login(ssh_address, ssh_username, port=ssh_port)

# 示例:执行命令并获取输出
ssh_session.sendline('ls')
ssh_session.prompt()
print(ssh_session.before)

# 关闭会话
ssh_session.logout()

方案2:改用winpexpect库

winpexpect是针对Windows优化的pexpect分支,兼容spawn调用方式:

  1. 卸载原pexpect(避免版本冲突):
pip uninstall pexpect
  1. 安装winpexpect:
pip install winpexpect
  1. 修改代码导入:
import winpexpect as pexpect

ssh_command = f"ssh {ssh_username}@{ssh_address} -p {ssh_port}"
ssh_session = pexpect.spawn(ssh_command, encoding='utf-8')
# 后续处理登录交互等逻辑

方案3:替换为paramiko库

paramiko是跨平台的专业SSH库,功能更全面,兼容性更好:

  1. 安装paramiko:
pip install paramiko
  1. 示例代码:
import paramiko

ssh_client = paramiko.SSHClient()
# 自动接受未知主机密钥
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 建立连接
ssh_client.connect(ssh_address, port=ssh_port, username=ssh_username)

# 执行命令并获取结果
stdin, stdout, stderr = ssh_client.exec_command('ls')
print(stdout.read().decode('utf-8'))

# 关闭连接
ssh_client.close()

内容的提问来源于stack exchange,提问作者Akshay J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 18:22:36