Windows运行pexpect-serial示例报spawn导入错误如何修复
pexpect-serial导入报错修复方案
问题原因
触发ImportError: cannot import name 'spawn'的核心原因有两点:
- 公开发布的pexpect-serial稳定版导入逻辑未适配高版本pexpect,和4.7.0及以上版本pexpect存在兼容冲突
- Windows环境下pexpect运行依赖pywin32组件,缺少该组件时spawn类无法正常加载
具体修复步骤
按顺序执行以下操作:
- 先卸载当前存在兼容问题的相关包,打开命令提示符执行以下命令:
pip uninstall -y pexpect pexpect-serial
- 安装适配Windows环境、版本匹配的依赖包:
pip install pexpect==4.6.0 pywin32 pexpect-serial
- 如果执行完上述两步仍然报相同导入错误,找到报错提示路径下的
serial_spawn.py文件(对应你环境里的路径为C:\python36\lib\site-packages\pexpect_serial\serial_spawn.py),把文件第24行的导入语句:
from pexpect import spawn
替换为:
from pexpect.spawnbase import SpawnBase as spawn
保存修改后的文件,重新运行代码即可正常导入。
注意:你当前使用的是Python3.6环境,请勿安装4.7.0及以上版本的pexpect,这类高版本不仅对Python3.6兼容性差,和现有公开发布版pexpect-serial的导入逻辑也完全不匹配。
内容的提问来源于stack exchange,提问作者Sblu
相关产品推荐
相关产品推荐

