You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

解决ubuntu-drivers Python脚本报错:安装NVIDIA闭源显卡驱动时detect.py出现类型不匹配错误

解决ubuntu-drivers Python脚本报错:安装NVIDIA闭源显卡驱动时detect.py出现类型不匹配错误

遇到这个问题我太感同身受了!之前帮朋友排查过一模一样的情况,大概率是ubuntu-drivers工具里的Python脚本在处理显卡硬件信息时,因类型判断不严谨引发的兼容问题,尤其是Python版本更新后这类问题更容易出现。下面给你两种经过验证的解决思路:

方法一:手动修复detect.py脚本

这是直接从根源解决问题的方式:

  • 首先定位detect.py文件的位置,通常在系统的Python包目录下:/usr/lib/python3/dist-packages/ubuntu_drivers/detect.py
  • 用带sudo权限的编辑器打开文件,比如用nano:sudo nano /usr/lib/python3/dist-packages/ubuntu_drivers/detect.py
  • 找到触发类型不匹配错误的代码行(一般是涉及版本号、显卡型号的比较逻辑,错误提示会明确指出行号)。举个常见的场景:如果错误是TypeError: unsupported operand type(s) for >: 'str' and 'int',说明脚本把字符串类型的版本号直接和整数比较了,我们需要添加类型转换逻辑:
    比如原来的代码可能是:
    if version > 525:
        # 执行对应逻辑
    
    修改为:
    # 先判断版本号是否为可转换的数字字符串
    if isinstance(version, str) and version.strip().isdigit():
        version_int = int(version.strip())
        if version_int > 525:
            # 原来的逻辑代码
    else:
        # 处理非数字版本号的情况(比如带后缀的版本)
        pass
    
  • 保存文件(nano里按Ctrl+O回车,再按Ctrl+X退出),然后重新运行sudo ubuntu-drivers install即可。

方法二:绕开ubuntu-drivers工具,手动安装驱动

如果不想修改系统自带脚本,直接用更直接的方式安装驱动也完全可行:

  • 先更新软件源索引:sudo apt update
  • 运行命令查看系统推荐的NVIDIA驱动版本:ubuntu-drivers devices(这个命令一般不会触发detect.py的错误)
  • 从输出里找到标注为recommended的驱动包名,比如nvidia-driver-535
  • 直接安装该驱动:sudo apt install nvidia-driver-535
  • 安装完成后重启系统:sudo reboot

额外注意事项

  • 修改系统脚本前,建议先备份原文件,避免改出问题无法恢复:sudo cp /usr/lib/python3/dist-packages/ubuntu_drivers/detect.py /usr/lib/python3/dist-packages/ubuntu_drivers/detect.py.bak
  • 如果是近期升级了Python版本导致的问题,本质是新版本Python对类型检查更严格,上面的类型转换操作就能解决绝大多数这类兼容性问题。

备注:内容来源于stack exchange,提问作者Bill West

火山引擎 最新活动