You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac导入sklearn报No module named 'numpy.random.bit_generator'错误

问题背景

在Macbook Air M1设备上参考教程完成opencv、tensorflow等机器学习工具安装后,验证opencv、tensorflow均可正常运行,但尝试导入sklearn时触发报错。
参考的教程明确指定了numpy与python的对应版本,查询解决方案时看到有升级numpy的建议,但担心升级numpy会导致已安装的OpenCV等其他库无法正常运行,不确定是否应该执行升级操作。

当前环境版本信息
  • Python:3.8.6
  • numpy:1.18.5
  • scikit-learn:1.1.1
  • scipy:1.8.1
报错日志
File ~/miniforge3/envs/ml/lib/python3.8/site-packages/scipy/stats/distributions.py:11, in <module>
      8 from ._distn_infrastructure import (rv_discrete, rv_continuous, rv_frozen)
     10 from . import _continuous_distns
---> 11 from . import _discrete_distns
     13 from ._continuous_distns import *
     14 from ._discrete_distns import *

File ~/miniforge3/envs/ml/lib/python3.8/site-packages/scipy/stats/_discrete_distns.py:21, in <module>
     17 from ._distn_infrastructure import (
     18     rv_discrete, _ncx2_pdf, _ncx2_cdf, get_distribution_names,
     19     _check_shape)
     20 import scipy.stats._boost as _boost
---> 21 from ._biasedurn import (_PyFishersNCHypergeometric,
     22                         _PyWalleniusNCHypergeometric,
     23                         _PyStochasticLib3)
     25 class binom_gen(rv_discrete):
     26     r"""A binomial discrete random variable.
     27 
     28     %(before_notes)s
   (...)
     51 
     52     """

File _biasedurn.pyx:1, in init scipy.stats._biasedurn()

ModuleNotFoundError: No module named 'numpy.random.bit_generator'
故障原因

报错核心为依赖版本不匹配:当前安装的scipy 1.8.1、scikit-learn 1.1.1最低要求numpy版本≥1.19.0,numpy.random.bit_generator是numpy 1.19版本后才对外开放的公共接口,现有numpy 1.18.5版本不存在该模块,因此触发导入错误。

修复步骤

不需要直接升级到最新版numpy打破现有环境兼容,按以下操作即可:

  1. 先备份现有可用的ml环境,避免操作失误导致原有opencv、tensorflow不可用:
    conda create -n ml_backup --clone ml
    
  2. 激活原ml环境,安装兼容全量依赖的numpy版本即可:
    conda activate ml
    conda install numpy=1.21.6
    
    该版本为Python 3.8适配的稳定版,同时兼容M1芯片miniforge架构、opencv、tensorflow以及当前安装的scipy、scikit-learn,不会触发依赖冲突。
  3. 升级完成后依次验证库导入:
    import cv2
    import tensorflow as tf
    import sklearn
    
    无报错即修复完成。如果出现兼容问题,可直接删除损坏环境从备份恢复:
    conda remove -n ml --all
    conda create -n ml --clone ml_backup
    

注意:不要直接用pip安装最新版numpy,M1芯片下pip安装的numpy可能存在架构不兼容问题,优先使用conda安装对应版本。

内容的提问来源于stack exchange,提问作者Zahid Sakib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 17:03:33