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

Python 3.7安装smbus包时出现WinError 2错误求解决办法

错误原因
  • smbus不支持Windows:smbus是Linux平台专属的I2C总线库,官方没有适配Windows的安装包,pip在Windows环境下找不到对应的可安装文件,直接抛出[WinError 2] The system cannot find the file specified。
  • Python/pip路径异常:py -3.7可能未正确指向你的Python3.7安装目录,导致pip调用失败;或者pip版本过低,无法正确解析包的安装请求。
  • 源码编译不可行:即使强制从源码编译smbus,Windows缺少I2C底层驱动和编译工具链(如Visual C++ Build Tools),编译过程会因依赖缺失中断,最终还是触发文件找不到的错误。
解决方法

换用Windows兼容的替代库

  • smbus2:这是smbus的增强分支,有第三方提供的Windows预编译轮子,执行命令:
    py -3.7 -m pip install smbus2
    
    注:如果你的Windows设备没有原生I2C硬件,需要搭配USB转I2C适配器使用。
  • USB转I2C专用库:如果使用CH341这类USB转I2C模块,直接安装pych341操作硬件:
    py -3.7 -m pip install pych341
    
  • Adafruit Blinka:如果要兼容原有smbus代码,这个库可以在Windows上模拟Linux I2C环境,安装后直接使用smbus风格的API:
    py -3.7 -m pip install adafruit-blinka
    

修复Python/pip路径问题

  • 先验证py -3.7是否有效:运行py -3.7 --version,如果未返回正确的Python3.7版本,就用Python3.7的绝对路径调用pip,例如:
    C:\Python37\python.exe -m pip install smbus2
    
  • 升级pip到适配版本:
    py -3.7 -m pip install --upgrade pip
    

用WSL2运行原生smbus

如果必须依赖原版smbus,就在Windows上安装WSL2(Linux子系统):

  1. 开启WSL2并安装Ubuntu等Linux发行版;
  2. 在Linux子系统内安装Python3.7和smbus:
    sudo apt update && sudo apt install python3.7 python3-pip
    pip3 install smbus
    
  3. 在WSL2中运行你的代码,即可正常使用smbus功能。

内容的提问来源于stack exchange,提问作者Seán Moran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:35:13