摘要:
尝试在 Ubuntu 24.04 上的 conda 环境中导入
cuml
库时遇到导入错误。以下是我遵循的步骤以及遇到的错误。
重现步骤:
-
创建新的 conda 环境:
conda create --prefix ./env jupyter python=3.8
-
从rapidsai 通道安装
cuml
库:conda install -c rapidsai -c nvidia -c conda-forge cuml=21.12 cudatoolkit=11.0
此安装工作正常,一切似乎都下载成功。
-
启动 Jupyter 服务器:
jupyter notebook
-
在 Jupyter 单元中运行以下命令:
import cuml
错误消息:
ImportError: cannot import name 'MachAr' from 'numpy'
导入错误的详细信息:
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[1], line 1
----> 1 import cuml
File ~/Desktop/cuML-problem/env/lib/python3.8/site-packages/cuml/__init__.py:17
1 #
2 # Copyright (c) 2021, NVIDIA CORPORATION.
3 #
(...)
14 # limitations under the License.
15 #
---> 17 from cuml.common.base import Base
18 from cuml.common.handle import Handle
19 import cuml.common.cuda as cuda
File ~/Desktop/cuML-problem/env/lib/python3.8/site-packages/cuml/common/__init__.py:17
1 #
2 # Copyright (c) 2019-2020, NVIDIA CORPORATION.
3 #
(...)
14 # limitations under the License.
15 #
---> 17 from cuml.common.array import CumlArray
18 from cuml.common.array_sparse import SparseCumlArray
20 # utils
File ~/Desktop/cuML-problem/env/lib/python3.8/site-packages/cuml/common/array.py:17
1 #
2 # Copyright (c) 2020-2021, NVIDIA CORPORATION.
3 #
(...)
14 # limitations under the License.
15 #
---> 17 import cupy as cp
18 import numpy as np
19 import operator
File ~/Desktop/cuML-problem/env/lib/python3.8/site-packages/cupy/__init__.py:394
392 from numpy import finfo # NOQA
393 from numpy import iinfo # NOQA
--> 394 from numpy import MachAr # NOQA
396 from numpy import find_common_type # NOQA
397 from numpy import issctype # NOQA
ImportError: cannot import name 'MachAr' from 'numpy' (/home/john/Desktop/cuML-problem/env/lib/python3.8/site-packages/numpy/__init__.py)
采取的故障排除步骤:
-
-
运行命令:
conda install numpy=1.23
-
遇到以下错误:
LibMambaUnsatisfiableError: Encountered problems while solving: - nothing provides numpy-base 1.23.3 py310h375b286_0 needed by numpy-1.23.3-py310hac523dd_0
-
运行命令:
-
尝试使用 Python 3.12 在 conda 环境中安装
cuml
库:-
遇到类似依赖性问题:
LibMambaUnsatisfiableError: Encountered problems while solving: - package cuml-21.12.00-cuda11_py37_g04c4927f3_0 requires python >=3.7,<3.8.0a0, but none of the providers can be installed
-
遇到类似依赖性问题:
-
尝试在 Python 3.12 环境中安装
cuml
但没有特定版本:-
遇到以下错误:
LibMambaUnsatisfiableError: Encountered problems while solving: - nothing provides cuda92 needed by libcuml-0.5.1-cuda9.2_0
-
遇到以下错误:
环境详细信息:
- 操作系统: Ubuntu 24.04
- Conda版本: 24.5.0
- GPU: NVIDIA GeForce GTX 1060 3GB
- NVIDIA 驱动程序版本: 535.183.01
问题:
如何解决导入错误并成功在我的 conda 环境中导入
cuml
库?是否有已知可与 cuml 21.12 一起使用的 numpy 和 Python 的特定版本?
遇到的错误是因为
numpy
版本 1.24 中删除了
MachAr
属性。cuML 21.12 版本与
numpy
的最新版本不兼容。
以下是在的 conda 环境中成功导入
cuml
的解决方法:
-
创建一个新的 conda 环境: 最好从一个干净的环境开始。包括 Python 3.8 版本,因为根据 rapidsai 文档,这是支持的版本。
bash conda create --prefix ./env_cuml python=3.8 -c rapidsai -c nvidia -c conda-forge conda activate ./env_cuml
-
安装特定版本的 cuML 和 cudatoolkit: 不要安装没有指定版本的
cuml
,因为这可能会导致依赖项问题。选择与的 CUDA 版本兼容的cudatoolkit
版本(对于的 GTX 1060,cudatoolkit=11.0 应该可以)。bash conda install cuml=21.12 cudatoolkit=11.0 -c rapidsai -c nvidia -c conda-forge
-
安装兼容的 numpy 版本: 在安装 cuML 后,手动安装
numpy
的兼容版本。根据的错误消息,numpy
1.23 应该可以解决该问题。bash conda install numpy=1.23
-
验证安装: 安装所有软件包后,通过尝试导入
cuml
来验证的安装。python import cuml
如果仍然遇到问题,请确保:
- 的 NVIDIA 驱动程序是最新的。 可以从 NVIDIA 驱动程序下载页面 下载适用于的 GPU 的最新驱动程序。
- 正在使用与的 CUDA 版本兼容的 cuML 版本。 可以在 rapidsai 文档 中找到 CUDA 和 cuML 版本的兼容性矩阵。
按照这些步骤应该可以解决
ImportError
并允许在 conda 环境中使用
cuml
。