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

执行`sudo ubuntu-drivers autoinstall`安装NVIDIA驱动时出现UnboundLocalError错误的求助

执行sudo ubuntu-drivers autoinstall安装NVIDIA驱动时出现UnboundLocalError错误的求助

看起来你遇到的是ubuntu-drivers工具里的一个小bug,我来帮你分析解决:

错误原因

从你贴出的Python代码能直接定位问题:
nvidia_desktop_pre_installation_hook函数里,脚本尝试解析NVIDIA驱动版本号时,如果遇到版本号不是纯数字的情况(比如带-open后缀的驱动,像nvidia-driver-535-open),会触发ValueError进入except块,但这里只是pass,没给version变量赋值。而finally块不管try是否成功都会执行,此时version变量还未定义,就抛出了UnboundLocalError

解决方案

方案一:手动安装指定驱动版本(推荐,操作更简单)

  1. 先查看系统推荐的可用驱动:

    ubuntu-drivers devices
    

    输出里会标注推荐的驱动版本,比如类似nvidia-driver-535 - third-party non-free recommended这样的内容。

  2. 直接手动安装该驱动:

    sudo apt install nvidia-driver-535
    

    535换成你看到的实际推荐版本号即可,这样能直接绕开有bug的脚本逻辑。

方案二:修复ubuntu-drivers的Python脚本

如果你想修复原脚本的问题,可以按以下步骤操作:

  1. 编辑有问题的脚本文件:

    sudo nano /usr/lib/python3/dist-packages/UbuntuDrivers/detect.py
    
  2. 找到nvidia_desktop_pre_installation_hook函数,修改成以下内容:

    def nvidia_desktop_pre_installation_hook(to_install):
        '''Applies changes that need to happen before installing the NVIDIA drivers'''
        with_nvidia_kms = False
        # Enable KMS if nvidia >= 470
        version = 0  # 给version设置初始值
        for package_name in to_install:
            if package_name.startswith('nvidia-driver-'):
                try:
                    version = int(package_name.split('-')[-1])
                except ValueError:
                    version = 0  # 解析失败时赋值为0,避免变量未定义
                finally:
                    with_nvidia_kms = version >= 470
        if with_nvidia_kms:
            set_nvidia_kms(1)
    
  3. 保存文件(按Ctrl+O,回车确认,再按Ctrl+X退出nano),然后重新运行:

    sudo ubuntu-drivers autoinstall
    

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

火山引擎 最新活动