Python 3.13 中的 CuPy 错误 | AI生成和翻译

Home 2025.06

问题描述

在运行使用CuPy库进行GPU计算的Python脚本时,遇到AttributeError错误。该错误发生在import cupy as cp语句处,导致脚本无法执行。回溯信息指向CuPy内部代码的问题,具体位于cupy/cuda/device.pyx第105行,其中memoize装饰器试图修改内置函数或方法的__name__属性。错误信息如下:

AttributeError: attribute '__name__' of 'builtin_function_or_method' objects is not writable

这个问题似乎与您使用的Python 3.13有关,可能会导致与已安装CuPy版本的兼容性问题。

错误原因

该错误产生的原因是:

由于错误发生在导入CuPy期间,这是一个与库初始化相关的系统性问题,而非脚本逻辑问题。

推荐解决方案

最简单实用的解决方法是使用已知与CuPy兼容的早期Python版本(如Python 3.11或3.12)运行脚本。这样可以避免Python 3.13的兼容性问题,无需修改CuPy源代码或实施复杂变通方案。

方案优势

实施步骤

方案一:使用virtualenv

  1. 安装Python 3.11或3.12
    • 通过系统包管理器或Python官网安装对应版本。
  2. 创建虚拟环境
    virtualenv -p python3.11 venv
    

    此命令创建名为venv的虚拟环境。如需使用Python 3.12,将python3.11替换为python3.12

  3. 激活虚拟环境
    source venv/bin/activate
    
  4. 安装CuPy
    pip install cupy
    

    这将安装适用于Python 3.11的最新兼容版CuPy。

  5. 运行脚本
    python scripts/benchmark/cudamark.py
    

    此时脚本应能正常执行。

  6. 退出环境(完成后)
    deactivate
    

方案二:使用conda

  1. 创建Conda环境
    conda create -n cudabench python=3.11
    

    创建名为cudabench的环境。如需Python 3.12,使用python=3.12

  2. 激活环境
    conda activate cudabench
    
  3. 安装CuPy
    pip install cupy
    
  4. 运行脚本
    python scripts/benchmark/cudamark.py
    
  5. 退出环境(完成后)
    conda deactivate
    

验证结果

环境配置完成后运行脚本,应看到类似输出:

CPU核心数: <您的CPU核心数>
线程数: 1, 耗时: X.XXXX 秒
线程数: 2, 耗时: X.XXXX 秒
...
线程数,耗时(秒)
1,X.XXXXXX
2,X.XXXXXX
...

若脚本无AttributeError报错,即表明修复成功。

补充说明

通过使用Python 3.11或3.12,即可稳定运行GPU基准测试而避免此错误。


Back Donate