首页 > 编程问答 >尝试导入“cuml”库时出现导入错误

尝试导入“cuml”库时出现导入错误

时间:2024-08-01 07:23:14浏览次数:9  
标签:python numpy conda cuml

摘要:

尝试在 Ubuntu 24.04 上的 conda 环境中导入 cuml 库时遇到导入错误。以下是我遵循的步骤以及遇到的错误。

重现步骤:

  1. 创建新的 conda 环境:

    conda create --prefix ./env jupyter python=3.8
    
  2. 从rapidsai 通道安装 cuml 库:

    conda install -c rapidsai -c nvidia -c conda-forge cuml=21.12 cudatoolkit=11.0
    

    此安装工作正常,一切似乎都下载成功。

  3. 启动 Jupyter 服务器:

    jupyter notebook
    
  4. 在 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)

采取的故障排除步骤:

  1. 发现一个相关问题建议将 numpy 降级到 1.23:

    • 运行命令:
      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
      
  2. 尝试使用 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
      
  3. 尝试在 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 的解决方法:

  1. 创建一个新的 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

  2. 安装特定版本的 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

  3. 安装兼容的 numpy 版本: 在安装 cuML 后,手动安装 numpy 的兼容版本。根据的错误消息, numpy 1.23 应该可以解决该问题。 bash conda install numpy=1.23

  4. 验证安装: 安装所有软件包后,通过尝试导入 cuml 来验证的安装。 python import cuml

如果仍然遇到问题,请确保:

  • 的 NVIDIA 驱动程序是最新的。 可以从 NVIDIA 驱动程序下载页面 下载适用于的 GPU 的最新驱动程序。
  • 正在使用与的 CUDA 版本兼容的 cuML 版本。 可以在 rapidsai 文档 中找到 CUDA 和 cuML 版本的兼容性矩阵。

按照这些步骤应该可以解决 ImportError 并允许在 conda 环境中使用 cuml

标签:python,numpy,conda,cuml
From: 78818232

相关文章