运行NVIDIA CUDA Python示例时遇ImportError问题求助
问题背景
- 系统:Ubuntu 18.04
- CUDA版本:12.0
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Mon_Oct_24_19:12:58_PDT_2022 Cuda compilation tools, release 12.0, V12.0.76 Build cuda_12.0.r12.0/compiler.31968024_0 - 虚拟环境已安装包:
Package Version ---------------- ------- cupy-cuda12x 12.3.0 Cython 3.0.8 fastrlock 0.8.2 iniconfig 2.0.0 numpy 1.26.3 packaging 23.2 pip 23.3.2 pluggy 1.3.0 py-cpuinfo 9.0.0 pyclibrary 0.2.1 pyparsing 3.1.1 pytest 7.4.4 pytest-benchmark 4.0.0 setuptools 69.0.3 - 执行命令:
python3 -m pytest - 报错信息:
================================================================= ERRORS ================================================================= _________________________________________ ERROR collecting cuda/benchmarks/test_launch_latency.py _________________________________________ ImportError while importing test module '/home/myl/Desktop/cuda-python-main/cuda/benchmarks/test_launch_latency.py'. Hint: make sure your test modules/packages have valid Python names. Traceback: /usr/local/lib/python3.11/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level) cuda/benchmarks/test_launch_latency.py:9: in <module> from cuda import cuda E ImportError: cannot import name 'cuda' from 'cuda' (/home/myl/Desktop/cuda-python-main/cuda/__init__.py) - 尝试过的操作:将
cupy-cuda12x替换为cupy-cuda,问题未解决。
解决步骤
安装cuda-python仓库的开发包
直接克隆仓库后运行测试但未安装仓库本身的包,会导致Python无法找到cuda子模块。在仓库根目录执行:pip install -e .该命令会以开发模式安装cuda-python,将当前仓库的cuda包链接到虚拟环境的Python路径中。
确认编译环境与变量
cuda-python需要编译CUDA绑定,安装过程中会自动执行编译。若出现编译错误,检查以下内容:- 确保CUDA 12.0的环境变量正确设置:
export PATH=/usr/local/cuda-12.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-12.0/lib64:$LD_LIBRARY_PATH - 确保系统安装了基础编译工具:
sudo apt-get install build-essential
- 确保CUDA 12.0的环境变量正确设置:
排除包名冲突
检查虚拟环境中是否存在其他同名的cuda包,执行:pip list | grep cuda若有非目标的cuda包,先卸载:
pip uninstall -y <冲突的包名>验证安装有效性
安装完成后,在虚拟环境中执行以下命令验证:from cuda import cuda print(cuda.cuGetVersion())若能正常输出CUDA版本号,说明安装成功,再重新运行
python3 -m pytest。
内容的提问来源于stack exchange,提问作者Laut567
相关产品推荐
相关产品推荐

